sourcify_single_chain #4
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: "sourcify_single_chain" | |
| on: | |
| # Run using manual triggers from GitHub UI: | |
| # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow | |
| workflow_dispatch: | |
| inputs: | |
| chain_id: | |
| description: "ID of the chain to run against." | |
| type: "number" | |
| required: true | |
| default: 1 | |
| check_infer_version: | |
| description: "Check that we can infer the correct language version based on the available version pragmas." | |
| type: "boolean" | |
| required: false | |
| default: false | |
| check_binder: | |
| description: "Check name bindings on contracts reporting if there's any unresolved symbol." | |
| type: "choice" | |
| required: true | |
| default: "none" | |
| options: | |
| - "none" | |
| - "v1" | |
| - "v2" | |
| - "compare" | |
| workflow_call: | |
| inputs: | |
| chain_id: | |
| description: "ID of the chain to run against: https://docs.sourcify.dev/docs/chains/" | |
| type: "number" | |
| required: true | |
| default: 1 | |
| check_infer_version: | |
| description: "Check that we can infer the correct language version based on the available version pragmas." | |
| type: "boolean" | |
| required: false | |
| default: false | |
| check_binder: | |
| description: "Check name bindings on contracts reporting if there's any unresolved symbol." | |
| type: "string" | |
| required: false | |
| default: null | |
| jobs: | |
| buildSlang: | |
| runs-on: "ubuntu-22.04" # _SLANG_DEV_CONTAINER_BASE_IMAGE_ (keep in sync) | |
| steps: | |
| - name: "Checkout Repository" | |
| uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
| - name: "Restore Cache" | |
| uses: "./.github/actions/cache/restore" | |
| - name: "Build Test Binary" | |
| run: "./scripts/bin/with-hermit cargo build --bin solidity_testing_sourcify --release" | |
| - name: "Save Test Binary" | |
| uses: "actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02" | |
| with: | |
| name: "solidity_testing_sourcify_${{ inputs.chain_id }}" | |
| path: "./target/release/solidity_testing_sourcify" | |
| overwrite: true | |
| retention-days: 1 | |
| singleShard: | |
| runs-on: "ubuntu-22.04" # _SLANG_DEV_CONTAINER_BASE_IMAGE_ (keep in sync) | |
| needs: "buildSlang" | |
| outputs: | |
| __SLANG_SOURCIFY_SHARD_RESULTS__0: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__0 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__1: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__1 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__2: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__2 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__3: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__3 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__4: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__4 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__5: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__5 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__6: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__6 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__7: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__7 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__8: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__8 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__9: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__9 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__10: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__10 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__11: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__11 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__12: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__12 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__13: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__13 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__14: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__14 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__15: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__15 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__16: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__16 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__17: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__17 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__18: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__18 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__19: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__19 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__20: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__20 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__21: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__21 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__22: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__22 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__23: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__23 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__24: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__24 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__25: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__25 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__26: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__26 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__27: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__27 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__28: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__28 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__29: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__29 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__30: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__30 }}" | |
| __SLANG_SOURCIFY_SHARD_RESULTS__31: "${{ steps.output-shard-results.outputs.__SLANG_SOURCIFY_SHARD_RESULTS__31 }}" | |
| strategy: | |
| fail-fast: false # Continue running all shards even if some fail. | |
| matrix: | |
| shard_index: | |
| - 0 | |
| - 1 | |
| - 2 | |
| - 3 | |
| - 4 | |
| - 5 | |
| - 6 | |
| - 7 | |
| - 8 | |
| - 9 | |
| - 10 | |
| - 11 | |
| - 12 | |
| - 13 | |
| - 14 | |
| - 15 | |
| - 16 | |
| - 17 | |
| - 18 | |
| - 19 | |
| - 20 | |
| - 21 | |
| - 22 | |
| - 23 | |
| - 24 | |
| - 25 | |
| - 26 | |
| - 27 | |
| - 28 | |
| - 29 | |
| - 30 | |
| - 31 | |
| env: | |
| SHARD_COUNT: 32 # Length of the 'shard_index' array above. | |
| steps: | |
| - name: "Checkout Repository" | |
| uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
| - name: "Restore Cache" | |
| uses: "./.github/actions/cache/restore" | |
| - name: "Restore Test Binary" | |
| uses: "actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093" | |
| with: | |
| name: "solidity_testing_sourcify_${{ inputs.chain_id }}" | |
| - name: "Run Tests" | |
| run: | | |
| chmod +x solidity_testing_sourcify | |
| ./scripts/bin/with-hermit ./solidity_testing_sourcify test \ | |
| --chain-id ${{ inputs.chain_id }} \ | |
| --shard-count ${{ env.SHARD_COUNT }} \ | |
| --shard-index ${{ matrix.shard_index }} \ | |
| ${{ inputs.check_binder != 'none' && format('--check-binder={0}', inputs.check_binder) || '' }} \ | |
| ${{ inputs.check_infer_version == true && '--check-infer-version' || '' }} | |
| - name: "Write shard results to output" | |
| if: "!cancelled()" | |
| id: "output-shard-results" | |
| run: 'echo "__SLANG_SOURCIFY_SHARD_RESULTS__${{ matrix.shard_index }}=$(cat target/__SLANG_SOURCIFY_SHARD_RESULTS__.json)" >> "$GITHUB_OUTPUT"' | |
| combinedResults: | |
| runs-on: "ubuntu-22.04" # _SLANG_DEV_CONTAINER_BASE_IMAGE_ (keep in sync) | |
| needs: | |
| - "buildSlang" | |
| - "singleShard" | |
| if: "!cancelled()" | |
| steps: | |
| - name: "Checkout Repository" | |
| uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
| - name: "Restore Cache" | |
| uses: "./.github/actions/cache/restore" | |
| - name: "Restore Test Binary" | |
| uses: "actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093" | |
| with: | |
| name: "solidity_testing_sourcify_${{ inputs.chain_id }}" | |
| - name: "Output shards results" | |
| run: "echo '${{ toJSON(needs.singleShard.outputs) }}' > __SLANG_SOURCIFY_MATRIX_RESULTS__.json" | |
| - name: "Show combined results" | |
| run: | | |
| chmod +x solidity_testing_sourcify | |
| ./scripts/bin/with-hermit ./solidity_testing_sourcify show-combined-results __SLANG_SOURCIFY_MATRIX_RESULTS__.json |