format: stamp info, resources and program objects with their schema and specification version #129
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: ETHDebug | |
| on: | |
| pull_request: | |
| paths: | |
| - ".github/workflows/ethdebug.yml" | |
| - "package.json" | |
| - "yarn.lock" | |
| - "tsconfig*.json" | |
| - "schemas/**" | |
| - "packages/format/**" | |
| - "packages/conformance/**" | |
| workflow_dispatch: | |
| inputs: | |
| solidity_ref: | |
| description: Solidity ref to build for solc | |
| default: develop | |
| required: true | |
| soldb_ref: | |
| description: SolDB ref to build | |
| default: v0.3.0 | |
| required: true | |
| concurrency: | |
| group: ethdebug-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| FOUNDRY_VERSION: v1.0.0 | |
| SOLIDITY_REF: ${{ github.event.inputs.solidity_ref || 'develop' }} | |
| SOLDB_REF: ${{ github.event.inputs.soldb_ref || 'v0.3.0' }} | |
| jobs: | |
| conformance: | |
| name: solc + soldb conformance | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout ethdebug/format | |
| uses: actions/checkout@v4 | |
| with: | |
| path: format | |
| - name: Checkout SolDB | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: walnuthq/soldb | |
| ref: ${{ env.SOLDB_REF }} | |
| path: soldb | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: yarn | |
| cache-dependency-path: format/yarn.lock | |
| - name: Install format dependencies | |
| run: yarn install --frozen-lockfile | |
| working-directory: format | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Fetch prebuilt solc with ETHDebug support | |
| id: fetch-solc | |
| continue-on-error: true | |
| env: | |
| CIRCLECI_TOKEN: ${{ secrets.CIRCLECI_TOKEN }} | |
| GITHUB_TOKEN: ${{ github.token }} | |
| run: | | |
| python -m pip install git+https://github.com/argotorg/solc-bench.git | |
| solc-bench fetch "${SOLIDITY_REF}" \ | |
| --output "${GITHUB_WORKSPACE}/solidity/build/solc/solc" \ | |
| --force | |
| - name: Install Rust toolchain | |
| run: | | |
| rustup toolchain install stable --profile minimal | |
| rustup default stable | |
| - name: Cache Cargo build | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/git | |
| ~/.cargo/registry | |
| soldb/target | |
| key: ${{ runner.os }}-soldb-cargo-${{ hashFiles('soldb/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-soldb-cargo- | |
| - name: Build SolDB | |
| run: cargo build --bin soldb | |
| working-directory: soldb | |
| - name: Checkout Solidity | |
| if: steps.fetch-solc.outcome != 'success' | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: argotorg/solidity | |
| ref: ${{ env.SOLIDITY_REF }} | |
| path: solidity | |
| submodules: recursive | |
| - name: Install Solidity build dependencies | |
| if: steps.fetch-solc.outcome != 'success' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| build-essential \ | |
| ccache \ | |
| cmake \ | |
| libboost-filesystem-dev \ | |
| libboost-program-options-dev \ | |
| libboost-system-dev \ | |
| libboost-test-dev \ | |
| libcln-dev \ | |
| ninja-build | |
| - name: Cache Solidity ccache | |
| if: steps.fetch-solc.outcome != 'success' | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.ccache | |
| key: ${{ runner.os }}-solidity-ccache-${{ github.run_id }} | |
| restore-keys: | | |
| ${{ runner.os }}-solidity-ccache- | |
| - name: Build solc with ETHDebug support | |
| if: steps.fetch-solc.outcome != 'success' | |
| run: | | |
| cmake \ | |
| -S solidity \ | |
| -B solidity/build \ | |
| -G Ninja \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DTESTS=OFF \ | |
| -DTOOLS=OFF \ | |
| -DPEDANTIC=OFF \ | |
| -DCMAKE_C_COMPILER_LAUNCHER=ccache \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
| cmake --build solidity/build --target solc --parallel 2 | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: ${{ env.FOUNDRY_VERSION }} | |
| - name: Show external tool versions | |
| run: | | |
| solidity/build/solc/solc --version | |
| soldb/target/debug/soldb --version | |
| anvil --version | |
| cast --version | |
| - name: Run ETHDebug conformance tests | |
| env: | |
| ETHDEBUG_CONFORMANCE_SOLC: ${{ github.workspace }}/solidity/build/solc/solc | |
| ETHDEBUG_CONFORMANCE_SOLDB: ${{ github.workspace }}/soldb/target/debug/soldb | |
| ETHDEBUG_CONFORMANCE_ANVIL: anvil | |
| ETHDEBUG_CONFORMANCE_CAST: cast | |
| run: yarn --cwd packages/conformance test:external | |
| working-directory: format |