diff --git a/.github/workflows/foundry.yml b/.github/workflows/foundry.yml deleted file mode 100644 index 9bcb7471..00000000 --- a/.github/workflows/foundry.yml +++ /dev/null @@ -1,126 +0,0 @@ -name: Foundry CI - -on: - pull_request: - branches: [main] - push: - branches: [main] - workflow_dispatch: - -concurrency: - group: forge-validation-${{ github.head_ref }} - cancel-in-progress: true - -env: - FOUNDRY_PROFILE: ci - -jobs: - foundry-check: - strategy: - matrix: - os: [ubuntu-latest] - fail-fast: true - - name: Foundry project - runs-on: ubuntu-latest - timeout-minutes: 45 - outputs: - foundry_changed: ${{ steps.changes.outputs.foundry_changed }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: recursive - - - name: Cache Foundry build artifacts - if: steps.changes.outputs.foundry_changed != 'false' - uses: actions/cache@v4 - with: - path: | - cache - out - key: foundry-${{ runner.os }}-${{ hashFiles('foundry.toml', 'soldeer.lock', 'remappings.txt', 'src/**', 'test/**', 'script/**', 'dependencies/**') }} - restore-keys: | - foundry-${{ runner.os }}- - - - name: Detect Foundry-relevant changes - id: changes - run: | - if [ "${{ github.event_name }}" = "pull_request" ]; then - BASE="${{ github.event.pull_request.base.sha }}" - HEAD="${{ github.event.pull_request.head.sha }}" - else - BASE="${{ github.event.before }}" - HEAD="${{ github.sha }}" - fi - - if [ -z "$BASE" ] || [ "$BASE" = "0000000000000000000000000000000000000000" ]; then - CHANGED="$(git ls-tree -r --name-only "$HEAD")" - else - CHANGED="$(git diff --name-only "$BASE" "$HEAD")" - fi - - echo "$CHANGED" - - if echo "$CHANGED" | grep -Eq '^(src|test|script|dependencies)/|^(foundry.toml|remappings.txt|soldeer.lock)$'; then - echo "foundry_changed=true" >> "$GITHUB_OUTPUT" - else - echo "foundry_changed=false" >> "$GITHUB_OUTPUT" - fi - - - name: Install Foundry - if: steps.changes.outputs.foundry_changed == 'true' - uses: foundry-rs/foundry-toolchain@v1 - with: - version: v1.5.1 - - - name: Install Solidity Dependencies - if: steps.changes.outputs.foundry_changed == 'true' - run: forge soldeer update -d - - - name: Run Forge build - if: steps.changes.outputs.foundry_changed == 'true' - run: | - forge --version - forge build --sizes --color always - id: build - - - name: Run Forge tests - if: steps.changes.outputs.foundry_changed == 'true' - run: | - forge test -vvv --color always - id: test - - coverage_report: - name: Generate coverage report - needs: foundry-check - if: needs.foundry-check.outputs.foundry_changed == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: v1.5.1 - - - name: Install Solidity Dependencies - run: forge soldeer update -d - - - name: Setup LCOV - uses: hrishikesh-kadam/setup-lcov@v1 - - - name: Run Forge Coverage - run: forge coverage --color always --report lcov - id: coverage - - - name: Report code coverage - uses: zgosalvez/github-actions-report-lcov@v4 - with: - coverage-files: lcov.info - minimum-coverage: 85 - artifact-name: code-coverage-report - github-token: ${{ secrets.GITHUB_TOKEN }} - update-comment: true