mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-22 03:17:59 +00:00
08c1572870
* Add a CI action for running tests * Update the CI action fixing incorrect matrix usage
106 lines
4.7 KiB
YAML
106 lines
4.7 KiB
YAML
name: "Run Revive Differential Tests"
|
|
description: "Builds and runs revive-differential-tests (retester) from this repo against the caller's Polkadot SDK."
|
|
|
|
inputs:
|
|
# Setup arguments & environment
|
|
polkadot-sdk-path:
|
|
description: "The path of the polkadot-sdk that should be compiled for the tests to run against."
|
|
required: false
|
|
default: "."
|
|
type: string
|
|
cargo-command:
|
|
description: "The cargo command to use in compilations and running of tests (e.g., forklift cargo)."
|
|
required: false
|
|
default: "cargo"
|
|
type: string
|
|
revive-differential-tests-ref:
|
|
description: "The branch, tag or SHA to checkout for the revive-differential-tests."
|
|
required: false
|
|
default: "main"
|
|
type: string
|
|
resolc-version:
|
|
description: "The version of resolc to install and use in tests."
|
|
required: false
|
|
default: "0.5.0"
|
|
type: string
|
|
use-compilation-caches:
|
|
description: "Controls if the compilation caches will be used for the test run or not."
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
# Test Execution Arguments
|
|
platform:
|
|
description: "The identifier of the platform to run the tests on (e.g., geth-evm-solc, revive-dev-node-revm-solc)"
|
|
required: true
|
|
type: string
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Checkout the Differential Tests Repository
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
repository: paritytech/revive-differential-tests
|
|
ref: ${{ inputs['revive-differential-tests-ref'] }}
|
|
path: revive-differential-tests
|
|
submodules: recursive
|
|
- name: Installing the Latest Resolc
|
|
shell: bash
|
|
if: ${{ runner.os == 'Linux' && runner.arch == 'X64' }}
|
|
run: |
|
|
VERSION="${{ inputs['resolc-version'] }}"
|
|
ASSET_URL="https://github.com/paritytech/revive/releases/download/v$VERSION/resolc-x86_64-unknown-linux-musl"
|
|
echo "Downloading resolc v$VERSION from $ASSET_URL"
|
|
curl -Lsf --show-error -o resolc "$ASSET_URL"
|
|
chmod +x resolc
|
|
./resolc --version
|
|
- name: Installing Retester
|
|
shell: bash
|
|
run: ${{ inputs['cargo-command'] }} install --locked --path revive-differential-tests/crates/core
|
|
- name: Creating a workdir for retester
|
|
shell: bash
|
|
run: mkdir workdir
|
|
- name: Downloading & Initializing the compilation caches
|
|
shell: bash
|
|
if: ${{ inputs['use-compilation-caches'] == true }}
|
|
run: |
|
|
curl -fL --retry 3 --retry-all-errors --connect-timeout 10 -o cache.tar.gz "https://github.com/paritytech/revive-differential-tests/releases/download/compilation-caches-v1.1/cache.tar.gz"
|
|
tar -zxf cache.tar.gz -C ./workdir > /dev/null 2>&1
|
|
- name: Building the dependencies from the Polkadot SDK
|
|
shell: bash
|
|
run: ${{ inputs['cargo-command'] }} build --locked --profile release -p pallet-revive-eth-rpc -p revive-dev-node --manifest-path ${{ inputs['polkadot-sdk-path'] }}/Cargo.toml
|
|
- name: Running the Differential Tests
|
|
shell: bash
|
|
run: |
|
|
${{ inputs['cargo-command'] }} run --locked --manifest-path revive-differential-tests/Cargo.toml -- test \
|
|
--test ./revive-differential-tests/resolc-compiler-tests/fixtures/solidity/simple \
|
|
--test ./revive-differential-tests/resolc-compiler-tests/fixtures/solidity/complex \
|
|
--test ./revive-differential-tests/resolc-compiler-tests/fixtures/solidity/translated_semantic_tests \
|
|
--platform ${{ inputs['platform'] }} \
|
|
--concurrency.number-of-nodes 10 \
|
|
--concurrency.number-of-threads 10 \
|
|
--concurrency.number-of-concurrent-tasks 100 \
|
|
--working-directory ./workdir \
|
|
--revive-dev-node.consensus manual-seal-200 \
|
|
--revive-dev-node.path ${{ inputs['polkadot-sdk-path'] }}/target/release/revive-dev-node \
|
|
--eth-rpc.path ${{ inputs['polkadot-sdk-path'] }}/target/release/eth-rpc \
|
|
--resolc.path ./resolc
|
|
- name: Creating a markdown report of the test execution
|
|
shell: bash
|
|
if: ${{ always() }}
|
|
run: |
|
|
mv ./workdir/*.json report.json
|
|
python3 revive-differential-tests/scripts/process-differential-tests-report.py report.json ${{ inputs['platform'] }}
|
|
- name: Upload the Report to the CI
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
|
|
if: ${{ always() }}
|
|
with:
|
|
name: report-${{ inputs['platform'] }}.md
|
|
path: report.md
|
|
- name: Posting the report as a comment on the PR
|
|
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405
|
|
if: ${{ always() }}
|
|
with:
|
|
header: diff-tests-report-${{ inputs['platform'] }}
|
|
path: report.md
|