Common: Optional Param Dict Name to avoid Parameter Re-Addition #462
This file contains 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: Build | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
workflow_dispatch: | |
env: | |
cwd: ${{github.workspace}} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-build | |
cancel-in-progress: true | |
jobs: | |
checkout-submodules: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- id: create-cache-key | |
run: echo "submodule-cache-key=$(git submodule)" >> $GITHUB_OUTPUT | |
shell: bash | |
- uses: actions/cache/restore@v4 | |
id: submodules-cache-restore | |
with: | |
key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key }} | |
path: ${{github.workspace}}/packages/ethereum-tests | |
- if: steps.submodules-cache-restore.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v4 | |
id: submodule-cache-save | |
with: | |
path: ${{github.workspace}}/packages/ethereum-tests | |
key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key}} | |
outputs: | |
submodule-cache-key: submodule-${{ steps.create-cache-key.outputs.submodule-cache-key}} | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache/restore@v4 | |
id: dep-cache | |
with: | |
path: ${{github.workspace}}/node_modules | |
key: npm-${{ hashFiles('package-lock.json') }} | |
- name: Use Node.js 20 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'npm' | |
- run: npm ci | |
working-directory: ${{github.workspace}} | |
- name: Cache dependencies | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{github.workspace}} | |
key: npm-${{ hashFiles('package-lock.json') }} | |
- name: Cache build | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{github.workspace}} | |
key: npm-${{ hashFiles('package-lock.json') }}-${{ github.run_id }} | |
outputs: | |
dep-cache-key: ${{ steps.dep-cache.outputs.cache-primary-key }}-${{ github.run_id }} | |
block: | |
needs: [build, checkout-submodules] | |
uses: ./.github/workflows/block-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
submodule-cache-key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }} | |
blockchain: | |
needs: build | |
uses: ./.github/workflows/blockchain-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
browser: | |
needs: [build, checkout-submodules] | |
uses: ./.github/workflows/browser.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
submodule-cache-key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }} | |
client: | |
needs: build | |
uses: ./.github/workflows/client-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
common: | |
needs: build | |
uses: ./.github/workflows/common-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
devp2p: | |
needs: build | |
uses: ./.github/workflows/devp2p-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
ethash: | |
needs: build | |
uses: ./.github/workflows/ethash-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
evm: | |
needs: [build, checkout-submodules] | |
uses: ./.github/workflows/evm-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
submodule-cache-key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }} | |
examples: | |
needs: build | |
uses: ./.github/workflows/examples.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
genesis: | |
needs: build | |
uses: ./.github/workflows/genesis-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
rlp: | |
needs: build | |
uses: ./.github/workflows/rlp-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
statemanager: | |
needs: build | |
uses: ./.github/workflows/statemanager-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
trie: | |
needs: build | |
uses: ./.github/workflows/trie-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
tx: | |
needs: [build, checkout-submodules] | |
uses: ./.github/workflows/tx-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
submodule-cache-key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }} | |
util: | |
needs: build | |
uses: ./.github/workflows/util-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
verkle: | |
needs: build | |
uses: ./.github/workflows/verkle-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
vm-pr: | |
needs: [build, checkout-submodules] | |
uses: ./.github/workflows/vm-pr.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
submodule-cache-key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }} | |
wallet: | |
needs: build | |
uses: ./.github/workflows/wallet-build.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
lint: | |
needs: build | |
uses: ./.github/workflows/lint.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
typecheck: | |
needs: [build, checkout-submodules] | |
uses: ./.github/workflows/typecheck.yml | |
with: | |
dep-cache-key: ${{ needs.build.outputs.dep-cache-key }} | |
submodule-cache-key: ${{ needs.checkout-submodules.outputs.submodule-cache-key }} | |