fix: limit to ^0.8.13 compatibility #1179
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| permissions: {} | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - master | |
| jobs: | |
| build: | |
| name: build +${{ matrix.toolchain }} ${{ matrix.flags }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| toolchain: [stable, nightly] | |
| flags: | |
| - "" | |
| - --via-ir | |
| - --use solc:0.8.13 --via-ir | |
| - --use solc:0.8.13 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: foundry-rs/foundry-toolchain@v1 | |
| - run: forge --version | |
| - run: forge build --skip test --deny-warnings ${{ matrix.flags }} | |
| # via-ir compilation time checks. | |
| - if: contains(matrix.flags, '--via-ir') | |
| run: forge build --skip test --deny-warnings ${{ matrix.flags }} --contracts 'test/compilation/*' | |
| - run: | | |
| tmp_dir="test/ci-$(date +%s)" | |
| mkdir -p "$tmp_dir" | |
| cat <<'EOF' > "$tmp_dir/Basic.t.sol" | |
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.13; | |
| import "../src/Test.sol"; | |
| import "../src/Script.sol"; | |
| contract BasicTest is Test { | |
| function test_ok() public pure{ | |
| assertTrue(true); | |
| } | |
| } | |
| contract BasicScript is Script { | |
| function run() public {} | |
| } | |
| EOF | |
| forge test --deny-warnings ${{ matrix.flags }} | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| toolchain: [stable, nightly] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: ${{ matrix.toolchain }} | |
| - run: forge --version | |
| - run: forge test -vvv | |
| fmt: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: foundry-rs/foundry-toolchain@v1 | |
| - run: forge --version | |
| - run: forge fmt --check | |
| typos: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06 # v1 | |
| codeql: | |
| name: Analyze (${{ matrix.language }}) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| security-events: write | |
| actions: read | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - language: actions | |
| build-mode: none | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Initialize CodeQL | |
| uses: github/codeql-action/init@v4 | |
| with: | |
| languages: ${{ matrix.language }} | |
| build-mode: ${{ matrix.build-mode }} | |
| - name: Perform CodeQL Analysis | |
| uses: github/codeql-action/analyze@v4 | |
| with: | |
| category: "/language:${{matrix.language}}" | |
| ci-success: | |
| runs-on: ubuntu-latest | |
| if: always() | |
| needs: | |
| - build | |
| - test | |
| - fmt | |
| - typos | |
| - codeql | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Decide whether the needed jobs succeeded or failed | |
| uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} |