diff --git a/.github/workflows/_check-commit-count.yml b/.github/workflows/_check-commit-count.yml index d77fd2620..6ba4f9927 100644 --- a/.github/workflows/_check-commit-count.yml +++ b/.github/workflows/_check-commit-count.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Check number of commits in PR id: commits - uses: actions/github-script@v6 + uses: actions/github-script@v8 with: script: | const pr = context.payload.pull_request; @@ -32,7 +32,7 @@ jobs: - name: Comment for internal PRs if: steps.commits.outputs.count < 2 && steps.commits.outputs.from_fork == 'false' - uses: actions/github-script@v6 + uses: actions/github-script@v8 with: script: | github.rest.issues.createComment({ diff --git a/.github/workflows/_circular.yml b/.github/workflows/_circular.yml index 2f1346ba3..cf37970a2 100644 --- a/.github/workflows/_circular.yml +++ b/.github/workflows/_circular.yml @@ -15,17 +15,17 @@ jobs: node-version: [22.x] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: version: latest run_install: false @@ -36,7 +36,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/.github/workflows/_contracts.yml b/.github/workflows/_contracts.yml index a13170372..877c0832f 100644 --- a/.github/workflows/_contracts.yml +++ b/.github/workflows/_contracts.yml @@ -22,7 +22,7 @@ jobs: run: working-directory: contracts steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 diff --git a/.github/workflows/_dependencies.yml b/.github/workflows/_dependencies.yml index 9645d720b..bad2afb26 100644 --- a/.github/workflows/_dependencies.yml +++ b/.github/workflows/_dependencies.yml @@ -10,14 +10,14 @@ jobs: source: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -26,13 +26,13 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} restore-keys: ${{ runner.os }}-pnpm- - name: Cache lerna - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: ${{ runner.os }}-lerna path: ./.cache diff --git a/.github/workflows/_lint-external.yml b/.github/workflows/_lint-external.yml index 6ce73b5b7..af3b2a070 100644 --- a/.github/workflows/_lint-external.yml +++ b/.github/workflows/_lint-external.yml @@ -16,18 +16,18 @@ jobs: node-version: [22.x] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: version: latest run_install: false @@ -38,7 +38,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/.github/workflows/_lint-internal.yml b/.github/workflows/_lint-internal.yml index 7a7811c82..c5d5617e5 100644 --- a/.github/workflows/_lint-internal.yml +++ b/.github/workflows/_lint-internal.yml @@ -10,7 +10,29 @@ permissions: contents: read jobs: + circuit-breaker: + runs-on: ubuntu-latest + outputs: + is_lint_fix: ${{ steps.detect.outputs.is_lint_fix }} + steps: + - uses: actions/checkout@v6.0.2 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 1 + + - id: detect + shell: bash + run: | + msg="$(git log -1 --pretty=%B)" + if grep -Fq '[ci-lint-fix]' <<<"$msg"; then + echo "is_lint_fix=true" >> "$GITHUB_OUTPUT" + else + echo "is_lint_fix=false" >> "$GITHUB_OUTPUT" + fi + source: + needs: circuit-breaker + if: ${{ needs.circuit-breaker.outputs.is_lint_fix != 'true' }} runs-on: ubuntu-latest strategy: @@ -18,20 +40,20 @@ jobs: node-version: [22.x] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} persist-credentials: true - fetch-depth: 0 + fetch-depth: 1 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: version: latest run_install: false @@ -42,7 +64,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} @@ -70,6 +92,6 @@ jobs: run: | forge fmt - - uses: stefanzweifel/git-auto-commit-action@v5 + - uses: stefanzweifel/git-auto-commit-action@v7.1.0 with: - commit_message: "style: resolve style guide violations" + commit_message: "style: resolve style guide violations [ci-lint-fix]" diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml index b1b6b767e..baab6725e 100644 --- a/.github/workflows/_test.yml +++ b/.github/workflows/_test.yml @@ -24,15 +24,15 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -43,7 +43,7 @@ jobs: shell: bash - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} @@ -77,14 +77,14 @@ jobs: group: ${{ github.head_ref }}-unit runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -93,12 +93,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache @@ -260,6 +260,9 @@ jobs: cancel-in-progress: true group: ${{ github.head_ref }}-integration runs-on: ubuntu-latest + + timeout-minutes: 15 + services: postgres: image: postgres:18-alpine @@ -272,14 +275,14 @@ jobs: options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -288,12 +291,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache @@ -323,14 +326,14 @@ jobs: name: ["consensus"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -339,12 +342,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache @@ -408,14 +411,14 @@ jobs: name: ["clients"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -424,12 +427,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache @@ -466,14 +469,14 @@ jobs: name: ["snapshot"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -482,12 +485,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache @@ -545,14 +548,14 @@ jobs: name: ["sync"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -561,12 +564,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache @@ -611,6 +614,8 @@ jobs: group: ${{ github.head_ref }}-functional-${{matrix.name}} runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: matrix: node-version: [22.x] @@ -628,14 +633,14 @@ jobs: options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -644,12 +649,12 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - name: Cache lerna - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5.0.3 with: key: lerna-${{ github.sha }} path: ./.cache diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 542e63594..ba0ad07b0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -16,6 +16,10 @@ on: branches: ["develop", "main"] pull_request: +concurrency: + group: ${{ github.workflow }}-pr-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + jobs: analyze: name: Analyze (${{ matrix.language }}) @@ -54,7 +58,7 @@ jobs: # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6.0.2 # Add any setup steps before running the `github/codeql-action/init` action. # This includes steps like installing compilers or runtimes (`actions/setup-node` diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index dc88204fe..60f0ac4e1 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -5,7 +5,7 @@ on: types: [opened, synchronize, reopened, ready_for_review] concurrency: - group: pr-${{ github.event.pull_request.number }} + group: ${{ github.workflow }}-pr-${{ github.event.pull_request.number }} cancel-in-progress: true permissions: @@ -51,7 +51,7 @@ jobs: - contracts - lint-internal - lint-external - if: ${{ always() }} + if: ${{ !cancelled() }} outputs: run_tests: ${{ steps.decide.outputs.run_tests }} @@ -100,7 +100,7 @@ jobs: test: needs: [prechecks-gate] - if: ${{ always() && needs['prechecks-gate'].outputs.run_tests == 'true' }} + if: ${{ !cancelled() && needs['prechecks-gate'].outputs.run_tests == 'true' }} uses: ./.github/workflows/_test.yml secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/publish-evm.yml b/.github/workflows/publish-evm.yml index b78c8a2f4..3310a50ee 100644 --- a/.github/workflows/publish-evm.yml +++ b/.github/workflows/publish-evm.yml @@ -45,15 +45,15 @@ jobs: runs-on: ${{ matrix.settings.host }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 - name: Setup node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: "22.x" - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -63,7 +63,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} @@ -94,16 +94,16 @@ jobs: needs: - build steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 - name: Setup node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: "22.x" registry-url: https://registry.npmjs.org/ - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -113,7 +113,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} diff --git a/.github/workflows/publish-rc.yml b/.github/workflows/publish-rc.yml index 0ef9bb479..2847a0c87 100644 --- a/.github/workflows/publish-rc.yml +++ b/.github/workflows/publish-rc.yml @@ -45,15 +45,15 @@ jobs: runs-on: ${{ matrix.settings.host }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 - name: Setup node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: "22.x" - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -63,7 +63,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} @@ -94,16 +94,16 @@ jobs: needs: - build steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6.0.2 - name: Setup node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6.3.0 with: node-version: "22.x" registry-url: https://registry.npmjs.org/ - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v4.3.0 with: run_install: false version: latest @@ -113,7 +113,7 @@ jobs: run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT shell: bash - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v5.0.3 with: key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} diff --git a/scripts/generate-unit-workflow.js b/scripts/generate-unit-workflow.js index 306f5d0e7..b44adb3f0 100644 --- a/scripts/generate-unit-workflow.js +++ b/scripts/generate-unit-workflow.js @@ -13,20 +13,20 @@ const workflow = { "runs-on": "ubuntu-latest", steps: [ { - uses: "actions/checkout@v4", + uses: "actions/checkout@v6.0.2", with: { ref: "${{ github.head_ref }}", }, }, { - uses: "actions/setup-node@v4", + uses: "actions/setup-node@v6.3.0", with: { "node-version": "${{ matrix.node-version }}", }, }, { name: "Setup pnpm", - uses: "pnpm/action-setup@v4", + uses: "pnpm/action-setup@v4.3.0", with: { run_install: false, version: "latest", @@ -41,7 +41,7 @@ const workflow = { }, { name: "Cache pnpm modules", - uses: "actions/cache@v4", + uses: "actions/cache@v5.0.3", with: { key: "${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}", path: "${{ steps.pnpm-cache.outputs.STORE_PATH }}", @@ -50,7 +50,7 @@ const workflow = { }, { name: "Cache lerna", - uses: "actions/cache@v4", + uses: "actions/cache@v5.0.3", with: { key: "${{ runner.os }}-lerna", path: "./.cache",