Test build evm tests suite #21
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: EVM test suite | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
preflight: | |
uses: ./.github/workflows/reusable-preflight.yml | |
evm-test-suite: | |
needs: [preflight] | |
runs-on: ${{ needs.preflight.outputs.RUNNER }} | |
if: ${{ needs.preflight.outputs.changes_rust }} | |
timeout-minutes: 60 | |
container: | |
image: ${{ needs.preflight.outputs.IMAGE }} | |
env: | |
# Enable debug assertions since we are running optimized builds for testing | |
# but still want to have debug assertions. | |
RUSTFLAGS: "-C debug-assertions" | |
RUST_BACKTRACE: 1 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: script | |
run: | | |
forklift cargo build --locked --profile production -p pallet-revive-eth-rpc --bin eth-rpc | |
forklift cargo build --bin substrate-node | |
# forklift cargo build --locked --profile testnet --features pyroscope,fast-runtime --bin polkadot-execute-worker | |
# forklift cargo build --locked --profile testnet --features pyroscope,fast-runtime --bin polkadot-prepare-worker | |
- name: Checkout evm-tests | |
uses: actions/checkout@v4 | |
with: | |
repository: paritytech/evm-test-suite | |
ref: 14b2b9af243b70a938404e6366df0ce364d74232 | |
path: evm-test-suite | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: script | |
run: | | |
echo "Change to the evm-test-suite directory" | |
cd evm-test-suite | |
echo "Download the resolc binary" | |
wget https://github.com/paritytech/revive/releases/download/v0.1.0-dev.9/resolc -q | |
chmod +x resolc | |
echo "Check that binaries are in place" | |
export NODE_BIN_PATH=$(readlink -f ../target/debug/substrate-node) | |
export ETH_RPC_PATH=$(readlink -f ../target/production/eth-rpc) | |
export RESOLC_PATH=$(readlink -f ./resolc) | |
echo $NODE_BIN_PATH $ETH_RPC_PATH $RESOLC_PATH | |
echo "export variables for hardhat" | |
export NODE_PATH=$NODE_BIN_PATH | |
export ADAPTER_PATH=$ETH_RPC_PATH | |
export COMPILER_PATH=$RESOLC_PATH | |
echo "Install npm dependencies" | |
npm install | |
echo "Run the tests" | |
echo "bash init.sh --kitchensink -- --matter-labs -- $NODE_BIN_PATH $ETH_RPC_PATH $RESOLC_PATH" | |
bash init.sh --kitchensink -- --matter-labs -- $NODE_BIN_PATH $ETH_RPC_PATH $RESOLC_PATH | |
# cd matter-labs-tests | |
# npm install --force | |
# npx hardhat node | |
- name: Collect tests results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: evm-test-suite-${{ github.sha }} | |
path: evm-test-suite/test-logs/matter-labs-tests.log | |
confirm-required-test-evm-jobs-passed: | |
runs-on: ubuntu-latest | |
name: All test misc tests passed | |
# If any new job gets added, be sure to add it to this array | |
needs: | |
- evm-test-suite | |
if: always() && !cancelled() | |
steps: | |
- run: | | |
tee resultfile <<< '${{ toJSON(needs) }}' | |
FAILURES=$(cat resultfile | grep '"result": "failure"' | wc -l) | |
if [ $FAILURES -gt 0 ]; then | |
echo "### At least one required job failed ❌" >> $GITHUB_STEP_SUMMARY | |
exit 1 | |
else | |
echo '### Good job! All the required jobs passed 🚀' >> $GITHUB_STEP_SUMMARY | |
fi |