Skip to content

Update tests to be able to run using a leap dev-install package. #412

Update tests to be able to run using a leap dev-install package.

Update tests to be able to run using a leap dev-install package. #412

Workflow file for this run

name: EOS EVM Contract CI
on:
push:
branches:
- main
- release/*
pull_request:
workflow_dispatch:
jobs:
documentation:
name: Attach Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
with:
fetch-depth: 1
submodules: 'false'
- name: Attach Documentation
run: cat .github/workflows/contract.md >> $GITHUB_STEP_SUMMARY
build:
runs-on: ubuntu-20.04
strategy:
matrix:
DWITH_TEST_ACTIONS: ['on', 'off']
name: EOS EVM Contract Build - Tests ${{ matrix.DWITH_TEST_ACTIONS }}
env:
CC: gcc-10
CXX: g++-10
DCMAKE_BUILD_TYPE: 'Release'
steps:
- name: Authenticate
id: auth
uses: AntelopeIO/github-app-token-action@v1
with:
app_id: ${{ secrets.TRUSTEVM_CI_APP_ID }}
private_key: ${{ secrets.TRUSTEVM_CI_APP_KEY }}
- name: Checkout Repo
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'recursive'
token: ${{ steps.auth.outputs.token }}
- name: Download CDT
uses: AntelopeIO/asset-artifact-download-action@v2
with:
owner: AntelopeIO
repo: cdt
target: 'v3.1.0'
prereleases: false
file: 'cdt_.*amd64.deb'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install CDT
run: sudo apt-get install -y ./cdt*.deb
- name: Build EOS EVM Contract
run: .github/workflows/build-contract.sh
env:
DWITH_TEST_ACTIONS: ${{ matrix.DWITH_TEST_ACTIONS }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: contract.test-actions-${{ matrix.DWITH_TEST_ACTIONS }}.tar.gz
path: contract.tar.gz
if-no-files-found: error
- name: Download Leap - dev binary
uses: AntelopeIO/asset-artifact-download-action@v2
with:
owner: AntelopeIO
repo: leap
target: 'v3.1.3'
prereleases: false
file: 'leap-dev.*(x86_64|amd64).deb'
container-package: experimental-binaries
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Leap
run: sudo apt-get install -y ./leap*.deb
- name: Build EOS EVM Contract Tests
run: .github/workflows/build-contract-test.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: contract-test.tar.gz
path: contract-test.tar.gz
if-no-files-found: error
- name: Test EOS EVM Contract
run: .github/workflows/test-contract.sh
env:
DWITH_TEST_ACTIONS: ${{ matrix.DWITH_TEST_ACTIONS }}
- name: Upload Test Metrics
uses: actions/upload-artifact@v3
with:
name: test-results.xml
path: test-results.xml
if-no-files-found: error
leap-integration:
runs-on: ubuntu-20.04
name: EOS EVM Leap Integration Tests
env:
CC: gcc-10
CXX: g++-10
DCMAKE_BUILD_TYPE: 'Release'
steps:
- name: Update Package Index & Upgrade Packages
run: |
sudo apt-get update
sudo apt-get upgrade -y
- name: Authenticate
id: auth
uses: AntelopeIO/github-app-token-action@v1
with:
app_id: ${{ secrets.TRUSTEVM_CI_APP_ID }}
private_key: ${{ secrets.TRUSTEVM_CI_APP_KEY }}
- name: Checkout Repo
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'recursive'
token: ${{ steps.auth.outputs.token }}
- name: Download CDT
uses: AntelopeIO/asset-artifact-download-action@v2
with:
owner: AntelopeIO
repo: cdt
target: 'v3.1.0'
prereleases: false
file: 'cdt_.*amd64.deb'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install CDT
run: sudo apt-get install -y ./cdt*.deb
- name: Build EOS EVM Contract
run: .github/workflows/build-contract.sh
env:
DWITH_TEST_ACTIONS: ${{ matrix.DWITH_TEST_ACTIONS }}
- name: Download leap-dev binary
uses: AntelopeIO/asset-artifact-download-action@v2
with:
owner: AntelopeIO
repo: leap
target: 'v4'
prereleases: false
file: 'leap-dev.*(x86_64|amd64).deb'
container-package: experimental-binaries
token: ${{ secrets.GITHUB_TOKEN }}
- name: Download leap binary
uses: AntelopeIO/asset-artifact-download-action@v2
with:
owner: AntelopeIO
repo: leap
target: 'v4'
file: 'leap.*(x86_64|amd64).deb'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Leap
run: |
sudo apt-get install -y ./leap*.deb
dpkg -L leap-dev | grep TestHarness
dpkg -L leap | grep cleos
- name: Link Leap TestHarness Module (fix for v4 of leap)
run: sudo ln -s /usr/share/leap_testing/tests/TestHarness /usr/lib/python3/dist-packages/TestHarness
- name: Build EOS EVM Node
run: .github/workflows/build-node.sh
env:
CC: gcc-10
CXX: g++-10
- name: Install Test Depedencies
run: |
pip install --upgrade web3
sudo apt install nodejs
sudo apt install npm
npm install eosjs
npm install ethereumjs-util
npm install node-fetch
npm install http-jsonrpc-server
npm install dotenv
npm install is-valid-hostname
- name: Check Depedency Versions
run: |
pip show web3
node --version
- name: Test Leap Integration
run: |
mkdir test_run_root
cd test_run_root
./../tests/leap/nodeos_eos_evm_test.py -v --eos-evm-contract-root ../contract/build --eos-evm-build-root ../build --use-tx-wrapper ../peripherals/tx_wrapper
- name: Check Tx_Wrapper Logs
if: always()
run: |
cat $(find . -name tx_wrapper.stderr)
- name: Check Genesis
if: always()
run: |
cat $(find . -name eos-evm-genesis.json)
- name: Check eos-evm-node Logs
if: always()
run: |
cat $(find . -name eos-evm-node.stderr)
- name: Prepare Logs
if: failure()
run: |
cd ..
tar -czf leap-int-test-logs.tar.gz test_run_root/*
- name: Upload logs from failed tests
uses: actions/upload-artifact@v3
if: failure()
with:
name: leap-int-test-logs.tar.gz
path: leap-int-test-logs.tar.gz