diff --git a/.github/actions/setup-env/action.yml b/.github/actions/setup-env/action.yml new file mode 100644 index 0000000000..4a1d77f36b --- /dev/null +++ b/.github/actions/setup-env/action.yml @@ -0,0 +1,43 @@ +name: Setup env +description: Sets up node and pnpm + +inputs: + pnpm-version: + description: Version of pnpm to install + required: false + default: "9" + node-version: + description: Version of node to install + required: false + default: "18" + cache-save: + description: Whether to save the pnpm cache + required: false + default: "false" +outputs: + cache-hit: + description: Whether the cache was restored + value: ${{ steps.setup-node.outputs.cache-hit || steps.cache-restore.outputs.cache-hit }} + +runs: + using: composite + steps: + - uses: pnpm/action-setup@v4 + with: + version: ${{ inputs.pnpm-version }} + - uses: actions/setup-node@v4 + id: setup-node + with: + node-version: ${{ inputs.node-version }} + cache: ${{ inputs.cache-save == 'true' && 'pnpm' || '' }} + cache-dependency-path: "**/pnpm-lock.yaml" + - id: pnpm + if: inputs.cache-save == 'false' + run: pnpm store path --silent | xargs -I {} -0 echo "path={}" | tee -a $GITHUB_OUTPUT + shell: bash + - uses: actions/cache/restore@v4 + id: cache-restore + if: inputs.cache-save == 'false' + with: + path: ${{ steps.pnpm.outputs.path }} + key: node-cache-${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml b/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml index f5e4b8a397..0ec9dc2afd 100644 --- a/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml +++ b/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml @@ -14,13 +14,7 @@ jobs: runs-on: ${{ matrix.system }} steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Delete pnpm-lock.yaml run: "rm pnpm-lock.yaml" - name: Install diff --git a/.github/workflows/cache.yml b/.github/workflows/cache.yml new file mode 100644 index 0000000000..3e70415997 --- /dev/null +++ b/.github/workflows/cache.yml @@ -0,0 +1,48 @@ +name: Cache + +on: + push: + branches: + - main + - pre-release-testing-branch + - changeset-release/main + - v-next + paths: + - ".github/workflows/cache.yml" + - "**/pnpm-lock.yaml" + pull_request: + paths: + - ".github/workflows/cache.yml" + - "**/pnpm-lock.yaml" + workflow_dispatch: + +concurrency: + group: ${{github.workflow}}-${{github.ref}} + cancel-in-progress: true + +defaults: + run: + shell: bash + +jobs: + cache: + name: Cache + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + runner: ["ubuntu-latest", "macos-latest", "windows-latest"] + steps: + - uses: actions/checkout@v4 + - id: env + uses: ./.github/actions/setup-env + with: + cache-save: true + - name: Install + if: steps.env.outputs.cache-hit != 'true' + run: | + for lockfile in $(find "$(pwd)" -name pnpm-lock.yaml); do + pushd "$(dirname "$lockfile")" + pnpm install --frozen-lockfile --prefer-offline + popd + done diff --git a/.github/workflows/check-docs-site.yml b/.github/workflows/check-docs-site.yml index 3f4af679cb..fe2d438798 100644 --- a/.github/workflows/check-docs-site.yml +++ b/.github/workflows/check-docs-site.yml @@ -16,13 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Install Docs diff --git a/.github/workflows/comment-on-linter-error.yml b/.github/workflows/comment-on-linter-error.yml index 79a8036e0d..ad4ede93df 100644 --- a/.github/workflows/comment-on-linter-error.yml +++ b/.github/workflows/comment-on-linter-error.yml @@ -20,13 +20,7 @@ jobs: uses: actions/checkout@v4 with: ref: "refs/pull/${{ github.event.number }}/merge" - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 08f1e47d12..529c9d79f9 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -29,12 +29,7 @@ jobs: IS_WINDOWS: ${{ matrix.os == 'windows-latest' }} steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 + - uses: ./.github/actions/setup-env - name: Run fixture-projects script run: | cd e2e diff --git a/.github/workflows/hardhat-chai-matchers-ci.yml b/.github/workflows/hardhat-chai-matchers-ci.yml index 8a8c3383e4..5e33829baa 100644 --- a/.github/workflows/hardhat-chai-matchers-ci.yml +++ b/.github/workflows/hardhat-chai-matchers-ci.yml @@ -30,13 +30,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -75,13 +63,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-core-ci.yml b/.github/workflows/hardhat-core-ci.yml index a3394316b2..5f78927145 100644 --- a/.github/workflows/hardhat-core-ci.yml +++ b/.github/workflows/hardhat-core-ci.yml @@ -41,14 +41,9 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Install Node - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: pnpm - name: Install package run: pnpm install --frozen-lockfile --prefer-offline @@ -83,14 +78,9 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Install Node - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: pnpm - name: Install package run: pnpm install --frozen-lockfile --prefer-offline @@ -123,13 +113,9 @@ jobs: node: [18, 20] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: pnpm - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Install @types/node diff --git a/.github/workflows/hardhat-ethers-ci.yml b/.github/workflows/hardhat-ethers-ci.yml index ed6bc1a7bb..ab2f2841c3 100644 --- a/.github/workflows/hardhat-ethers-ci.yml +++ b/.github/workflows/hardhat-ethers-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-foundry-ci.yml b/.github/workflows/hardhat-foundry-ci.yml index 7d5eb8c5c9..2ba5cfe666 100644 --- a/.github/workflows/hardhat-foundry-ci.yml +++ b/.github/workflows/hardhat-foundry-ci.yml @@ -30,13 +30,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -75,13 +63,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-ledger-ci.yml b/.github/workflows/hardhat-ledger-ci.yml index 095739e069..0b63b2b0f4 100644 --- a/.github/workflows/hardhat-ledger-ci.yml +++ b/.github/workflows/hardhat-ledger-ci.yml @@ -33,13 +33,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -52,13 +46,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -74,13 +62,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-network-helpers-ci.yml b/.github/workflows/hardhat-network-helpers-ci.yml index cf565d7f56..3781f547ed 100644 --- a/.github/workflows/hardhat-network-helpers-ci.yml +++ b/.github/workflows/hardhat-network-helpers-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -53,13 +47,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -77,13 +65,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-network-tracing-all-solc-versions.yml b/.github/workflows/hardhat-network-tracing-all-solc-versions.yml index 1dde30263f..bff5a040d5 100644 --- a/.github/workflows/hardhat-network-tracing-all-solc-versions.yml +++ b/.github/workflows/hardhat-network-tracing-all-solc-versions.yml @@ -22,13 +22,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-shorthand-ci.yml b/.github/workflows/hardhat-shorthand-ci.yml index 7801a82cbe..e2bf15f0ae 100644 --- a/.github/workflows/hardhat-shorthand-ci.yml +++ b/.github/workflows/hardhat-shorthand-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-solhint-ci.yml b/.github/workflows/hardhat-solhint-ci.yml index ec06a1a480..f407f11eb4 100644 --- a/.github/workflows/hardhat-solhint-ci.yml +++ b/.github/workflows/hardhat-solhint-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-solpp-ci.yml b/.github/workflows/hardhat-solpp-ci.yml index 2709a47215..6ae5706607 100644 --- a/.github/workflows/hardhat-solpp-ci.yml +++ b/.github/workflows/hardhat-solpp-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -54,13 +48,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-toolbox-ci.yml b/.github/workflows/hardhat-toolbox-ci.yml index 83e9613128..ee5969dc64 100644 --- a/.github/workflows/hardhat-toolbox-ci.yml +++ b/.github/workflows/hardhat-toolbox-ci.yml @@ -40,13 +40,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -59,13 +53,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -81,13 +69,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-truffle4-ci.yml b/.github/workflows/hardhat-truffle4-ci.yml index f813ca4ccd..2be8290804 100644 --- a/.github/workflows/hardhat-truffle4-ci.yml +++ b/.github/workflows/hardhat-truffle4-ci.yml @@ -34,13 +34,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -53,13 +47,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -75,13 +63,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-truffle5-ci.yml b/.github/workflows/hardhat-truffle5-ci.yml index 90cc0974ea..7bc3b11bd3 100644 --- a/.github/workflows/hardhat-truffle5-ci.yml +++ b/.github/workflows/hardhat-truffle5-ci.yml @@ -34,13 +34,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -53,13 +47,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -75,13 +63,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-verify-ci.yml b/.github/workflows/hardhat-verify-ci.yml index e20471d196..8642afbdb8 100644 --- a/.github/workflows/hardhat-verify-ci.yml +++ b/.github/workflows/hardhat-verify-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-viem-ci.yml b/.github/workflows/hardhat-viem-ci.yml index 8ec4a4083a..83c5fb72b0 100644 --- a/.github/workflows/hardhat-viem-ci.yml +++ b/.github/workflows/hardhat-viem-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-vyper-ci.yml b/.github/workflows/hardhat-vyper-ci.yml index 1c4f5d3f2b..045260974e 100644 --- a/.github/workflows/hardhat-vyper-ci.yml +++ b/.github/workflows/hardhat-vyper-ci.yml @@ -35,13 +35,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-web3-ci.yml b/.github/workflows/hardhat-web3-ci.yml index afc7e4e024..0e0df2a9b2 100644 --- a/.github/workflows/hardhat-web3-ci.yml +++ b/.github/workflows/hardhat-web3-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-web3-legacy-ci.yml b/.github/workflows/hardhat-web3-legacy-ci.yml index 18e7e54903..eee301017b 100644 --- a/.github/workflows/hardhat-web3-legacy-ci.yml +++ b/.github/workflows/hardhat-web3-legacy-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: "pnpm" - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/hardhat-web3-v4-ci.yml b/.github/workflows/hardhat-web3-v4-ci.yml index 746413aa6e..8497cbee25 100644 --- a/.github/workflows/hardhat-web3-v4-ci.yml +++ b/.github/workflows/hardhat-web3-v4-ci.yml @@ -32,13 +32,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: pnpm + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -51,13 +45,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: pnpm + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -73,13 +61,9 @@ jobs: node: [18, 20, 22] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 + - uses: ./.github/actions/setup-env with: node-version: ${{ matrix.node }} - cache: pnpm - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 760e0495f0..6d8dccd4b5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,16 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" - cache-dependency-path: | - pnpm-lock.yaml - docs/pnpm-lock.yaml + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 1db35d8a33..38721feaab 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -17,13 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Build @@ -52,13 +46,7 @@ jobs: working-directory: packages/hardhat-core steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Cache network requests diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8d49ad9b64..afc3d2560e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,16 +19,7 @@ jobs: # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits fetch-depth: 0 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - - name: Setup Node.js 18.x - uses: actions/setup-node@v4 - with: - node-version: 18.x - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install Dependencies run: pnpm install --frozen-lockfile --prefer-offline diff --git a/.github/workflows/test-slow-imports-rule.yml b/.github/workflows/test-slow-imports-rule.yml index 6f6d2a3847..6846e721a0 100644 --- a/.github/workflows/test-slow-imports-rule.yml +++ b/.github/workflows/test-slow-imports-rule.yml @@ -22,13 +22,7 @@ jobs: runs-on: "ubuntu-latest" steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: "pnpm" + - uses: ./.github/actions/setup-env - name: Install run: pnpm install --frozen-lockfile --prefer-offline - name: Add slow import