From 91bc681c082755d57ce0d22b7bf7c0530ac02536 Mon Sep 17 00:00:00 2001 From: elle-j Date: Wed, 27 May 2026 19:03:06 +0200 Subject: [PATCH 1/6] Add workflow for polkadot-sdk compatibility. --- .../workflows/polkadot-sdk-compatibility.yml | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 .github/workflows/polkadot-sdk-compatibility.yml diff --git a/.github/workflows/polkadot-sdk-compatibility.yml b/.github/workflows/polkadot-sdk-compatibility.yml new file mode 100644 index 00000000..535daebf --- /dev/null +++ b/.github/workflows/polkadot-sdk-compatibility.yml @@ -0,0 +1,96 @@ +# Runs the run-differential-tests action the same way polkadot-sdk does, +# but against the current working tree and polkadot-sdk's master branch, +# in order to detect breaking changes before it bumps the commit it pins. +name: Polkadot SDK Compatibility + +on: + push: + branches: + - main + paths-ignore: + - "**/*.md" + pull_request: + branches: + - main + paths-ignore: + - "**/*.md" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + resolve-image: + runs-on: ubuntu-24.04 + outputs: + image: ${{ steps.image.outputs.image }} + steps: + - name: Checkout the Polkadot SDK CI Environment + uses: actions/checkout@v6 + with: + repository: paritytech/polkadot-sdk + ref: master + sparse-checkout: .github + + - name: Resolve the Container Image + id: image + shell: bash + run: | + set -euo pipefail + source .github/env + echo "image=$IMAGE" >> "$GITHUB_OUTPUT" + + differential-tests: + needs: resolve-image + runs-on: parity-large-persistent + timeout-minutes: 60 + container: + image: ${{ needs.resolve-image.outputs.image }} + strategy: + fail-fast: false + matrix: + platform: + - revive-dev-node-revm-solc + - revive-dev-node-polkavm-resolc + steps: + - name: Checkout This Repository + uses: actions/checkout@v6 + with: + path: revive-differential-tests + submodules: recursive + + - name: Checkout the Polkadot SDK + uses: actions/checkout@v6 + with: + repository: paritytech/polkadot-sdk + ref: master + path: polkadot-sdk + + - name: Configure forklift + shell: bash + run: | + mkdir -p .forklift + cp polkadot-sdk/.forklift/config.toml .forklift/config.toml + + - name: Download resolc + id: resolc + shell: bash + run: | + set -euo pipefail + source polkadot-sdk/.github/env + INSTALL_DIR="/usr/local/bin" + curl -fsSL --retry 3 -o "$INSTALL_DIR/resolc" "https://github.com/paritytech/revive/releases/download/v${RESOLC_VERSION}/resolc-x86_64-unknown-linux-musl" + chmod +x "$INSTALL_DIR/resolc" + resolc --version + echo "resolc-path=$INSTALL_DIR/resolc" >> "$GITHUB_OUTPUT" + + - name: Run the Differential Tests + uses: ./revive-differential-tests/.github/actions/run-differential-tests + with: + platform: ${{ matrix.platform }} + revive-differential-tests-path: revive-differential-tests + polkadot-sdk-path: polkadot-sdk + cargo-command: forklift cargo + resolc-path: ${{ steps.resolc.outputs.resolc-path }} + expectations-file-path: polkadot-sdk/.github/assets/${{ matrix.platform }}.json From 99057beb381f802dfa035456834178915c739b77 Mon Sep 17 00:00:00 2001 From: elle-j Date: Tue, 2 Jun 2026 10:54:49 +0200 Subject: [PATCH 2/6] Remove redundant 'shell'. --- .github/workflows/polkadot-sdk-compatibility.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/polkadot-sdk-compatibility.yml b/.github/workflows/polkadot-sdk-compatibility.yml index 535daebf..999a991e 100644 --- a/.github/workflows/polkadot-sdk-compatibility.yml +++ b/.github/workflows/polkadot-sdk-compatibility.yml @@ -35,7 +35,6 @@ jobs: - name: Resolve the Container Image id: image - shell: bash run: | set -euo pipefail source .github/env @@ -68,14 +67,12 @@ jobs: path: polkadot-sdk - name: Configure forklift - shell: bash run: | mkdir -p .forklift cp polkadot-sdk/.forklift/config.toml .forklift/config.toml - name: Download resolc id: resolc - shell: bash run: | set -euo pipefail source polkadot-sdk/.github/env @@ -91,6 +88,6 @@ jobs: platform: ${{ matrix.platform }} revive-differential-tests-path: revive-differential-tests polkadot-sdk-path: polkadot-sdk - cargo-command: forklift cargo + cargo-command: "forklift cargo" resolc-path: ${{ steps.resolc.outputs.resolc-path }} expectations-file-path: polkadot-sdk/.github/assets/${{ matrix.platform }}.json From 0450298f6c2c3c7faf0aba0d5fc8ffcad75209ba Mon Sep 17 00:00:00 2001 From: elle-j Date: Tue, 2 Jun 2026 11:28:38 +0200 Subject: [PATCH 3/6] Restore 'shell'. --- .github/workflows/polkadot-sdk-compatibility.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/polkadot-sdk-compatibility.yml b/.github/workflows/polkadot-sdk-compatibility.yml index 999a991e..7face5e9 100644 --- a/.github/workflows/polkadot-sdk-compatibility.yml +++ b/.github/workflows/polkadot-sdk-compatibility.yml @@ -35,6 +35,7 @@ jobs: - name: Resolve the Container Image id: image + shell: bash run: | set -euo pipefail source .github/env @@ -67,12 +68,14 @@ jobs: path: polkadot-sdk - name: Configure forklift + shell: bash run: | mkdir -p .forklift cp polkadot-sdk/.forklift/config.toml .forklift/config.toml - name: Download resolc id: resolc + shell: bash run: | set -euo pipefail source polkadot-sdk/.github/env From 20697ab77cbc3d9339865d6fb407c0065f835482 Mon Sep 17 00:00:00 2001 From: elle-j Date: Fri, 5 Jun 2026 09:48:14 +0200 Subject: [PATCH 4/6] Use sha from previous job. --- .../workflows/polkadot-sdk-compatibility.yml | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/.github/workflows/polkadot-sdk-compatibility.yml b/.github/workflows/polkadot-sdk-compatibility.yml index 7face5e9..7a49b25c 100644 --- a/.github/workflows/polkadot-sdk-compatibility.yml +++ b/.github/workflows/polkadot-sdk-compatibility.yml @@ -1,6 +1,6 @@ -# Runs the run-differential-tests action the same way polkadot-sdk does, -# but against the current working tree and polkadot-sdk's master branch, -# in order to detect breaking changes before it bumps the commit it pins. +# Exercises the relevant GH action the same way polkadot-sdk does, but against +# this repo's current working tree and polkadot-sdk's master branch, to catch +# breaking changes before polkadot-sdk bumps the revive-differential-tests commit it pins. name: Polkadot SDK Compatibility on: @@ -21,32 +21,36 @@ concurrency: cancel-in-progress: true jobs: - resolve-image: + resolve-config: runs-on: ubuntu-24.04 outputs: - image: ${{ steps.image.outputs.image }} + image: ${{ steps.config.outputs.image }} + resolc-version: ${{ steps.config.outputs.resolc-version }} + polkadot-sdk-sha: ${{ steps.config.outputs.polkadot-sdk-sha }} steps: - - name: Checkout the Polkadot SDK CI Environment + - name: Checkout the Polkadot SDK CI environment uses: actions/checkout@v6 with: repository: paritytech/polkadot-sdk ref: master sparse-checkout: .github - - name: Resolve the Container Image - id: image + - name: Resolve Polkadot SDK configuration + id: config shell: bash run: | set -euo pipefail source .github/env echo "image=$IMAGE" >> "$GITHUB_OUTPUT" + echo "resolc-version=$RESOLC_VERSION" >> "$GITHUB_OUTPUT" + echo "polkadot-sdk-sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" differential-tests: - needs: resolve-image + needs: resolve-config runs-on: parity-large-persistent timeout-minutes: 60 container: - image: ${{ needs.resolve-image.outputs.image }} + image: ${{ needs.resolve-config.outputs.image }} strategy: fail-fast: false matrix: @@ -54,7 +58,7 @@ jobs: - revive-dev-node-revm-solc - revive-dev-node-polkavm-resolc steps: - - name: Checkout This Repository + - name: Checkout revive-differential-tests uses: actions/checkout@v6 with: path: revive-differential-tests @@ -64,7 +68,7 @@ jobs: uses: actions/checkout@v6 with: repository: paritytech/polkadot-sdk - ref: master + ref: ${{ needs.resolve-config.outputs.polkadot-sdk-sha }} path: polkadot-sdk - name: Configure forklift @@ -76,16 +80,17 @@ jobs: - name: Download resolc id: resolc shell: bash + env: + RESOLC_VERSION: ${{ needs.resolve-config.outputs.resolc-version }} run: | set -euo pipefail - source polkadot-sdk/.github/env INSTALL_DIR="/usr/local/bin" curl -fsSL --retry 3 -o "$INSTALL_DIR/resolc" "https://github.com/paritytech/revive/releases/download/v${RESOLC_VERSION}/resolc-x86_64-unknown-linux-musl" chmod +x "$INSTALL_DIR/resolc" resolc --version echo "resolc-path=$INSTALL_DIR/resolc" >> "$GITHUB_OUTPUT" - - name: Run the Differential Tests + - name: Run the differential tests uses: ./revive-differential-tests/.github/actions/run-differential-tests with: platform: ${{ matrix.platform }} From 0dfc80f94ee2f046bb191793142007cff7ebb702 Mon Sep 17 00:00:00 2001 From: elle-j Date: Fri, 5 Jun 2026 09:53:54 +0200 Subject: [PATCH 5/6] Temporarily test if concurrency bump would fix polkadot-sdk CI. --- .github/workflows/polkadot-sdk-compatibility.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/polkadot-sdk-compatibility.yml b/.github/workflows/polkadot-sdk-compatibility.yml index 7a49b25c..77d807ba 100644 --- a/.github/workflows/polkadot-sdk-compatibility.yml +++ b/.github/workflows/polkadot-sdk-compatibility.yml @@ -99,3 +99,5 @@ jobs: cargo-command: "forklift cargo" resolc-path: ${{ steps.resolc.outputs.resolc-path }} expectations-file-path: polkadot-sdk/.github/assets/${{ matrix.platform }}.json + # TODO: Temporarily testing if this would fix polkadot-sdk CI. + concurrency-number-of-concurrent-tasks: 1000 From bcea809b53e8e68119d9d434991d03b4fed62db4 Mon Sep 17 00:00:00 2001 From: elle-j Date: Fri, 5 Jun 2026 14:02:53 +0200 Subject: [PATCH 6/6] Remove temporary concurrency setting. --- .github/workflows/polkadot-sdk-compatibility.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/polkadot-sdk-compatibility.yml b/.github/workflows/polkadot-sdk-compatibility.yml index 77d807ba..7a49b25c 100644 --- a/.github/workflows/polkadot-sdk-compatibility.yml +++ b/.github/workflows/polkadot-sdk-compatibility.yml @@ -99,5 +99,3 @@ jobs: cargo-command: "forklift cargo" resolc-path: ${{ steps.resolc.outputs.resolc-path }} expectations-file-path: polkadot-sdk/.github/assets/${{ matrix.platform }}.json - # TODO: Temporarily testing if this would fix polkadot-sdk CI. - concurrency-number-of-concurrent-tasks: 1000