name: CI on: workflow_dispatch: pull_request: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Foundry uses: onbjerg/foundry-toolchain@v1 with: version: nightly - name: Print forge version run: forge --version # Backwards compatibility checks. - name: Check compatibility with 0.8.0 if: always() run: forge build --skip test --use solc:0.8.0 - name: Check compatibility with 0.7.6 if: always() run: forge build --skip test --use solc:0.7.6 - name: Check compatibility with 0.7.0 if: always() run: forge build --skip test --use solc:0.7.0 - name: Check compatibility with 0.6.12 if: always() run: forge build --skip test --use solc:0.6.12 - name: Check compatibility with 0.6.2 if: always() run: forge build --skip test --use solc:0.6.2 # via-ir compilation time checks. - name: Measure compilation time of Test with 0.8.17 --via-ir if: always() run: forge build --skip test --contracts test/compilation/CompilationTest.sol --use solc:0.8.17 --via-ir - name: Measure compilation time of TestBase with 0.8.17 --via-ir if: always() run: forge build --skip test --contracts test/compilation/CompilationTestBase.sol --use solc:0.8.17 --via-ir - name: Measure compilation time of Script with 0.8.17 --via-ir if: always() run: forge build --skip test --contracts test/compilation/CompilationScript.sol --use solc:0.8.17 --via-ir - name: Measure compilation time of ScriptBase with 0.8.17 --via-ir if: always() run: forge build --skip test --contracts test/compilation/CompilationScriptBase.sol --use solc:0.8.17 --via-ir test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Foundry uses: onbjerg/foundry-toolchain@v1 with: version: nightly - name: Print forge version run: forge --version - name: Run tests run: forge test -vvv fmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Foundry uses: onbjerg/foundry-toolchain@v1 with: version: nightly - name: Print forge version run: forge --version - name: Check formatting run: forge fmt --check