Skip to content

[1.0] Do not rely on exists to determine if it's create #134

[1.0] Do not rely on exists to determine if it's create

[1.0] Do not rely on exists to determine if it's create #134

Workflow file for this run

name: EOS EVM Silkworm CI
on:
push:
branches:
- main
- release/*
pull_request:
workflow_dispatch:
defaults:
run:
shell: bash
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/silkworm.md >> $GITHUB_STEP_SUMMARY
d:
name: Discover Platforms
runs-on: ubuntu-latest
outputs:
missing-platforms: ${{steps.discover.outputs.missing-platforms}}
p: ${{steps.discover.outputs.platforms}}
steps:
- name: Discover Platforms
id: discover
uses: AntelopeIO/discover-platforms-action@v1
with:
platform-file: .cicd/platforms.json
password: ${{secrets.GITHUB_TOKEN}}
package-name: builders
build-platforms:
name: Build Platforms
needs: d
if: needs.d.outputs.missing-platforms != '[]'
strategy:
fail-fast: false
matrix:
platform: ${{fromJSON(needs.d.outputs.missing-platforms)}}
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{github.repository_owner}}
password: ${{secrets.GITHUB_TOKEN}}
- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
tags: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
file: ${{fromJSON(needs.d.outputs.p)[matrix.platform].dockerfile}}
build:
name: EOS EVM Silkworm Build
needs: [d, build-platforms]
if: always() && needs.d.result == 'success' && (needs.build-platforms.result == 'success' || needs.build-platforms.result == 'skipped')
strategy:
fail-fast: false
matrix:
platform: [ ubuntu22 ]
runs-on: ubuntu-latest
container: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
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: ${{secrets.GITHUB_TOKEN}}
- name: Build EOS EVM Silkworm
run: .github/workflows/build-tests.sh
env:
CC: gcc-11
CXX: g++-11
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: build.tar.gz
path: build.tar.gz
unit-test:
name: EOS EVM Silkworm Unit Tests
needs: [d, build]
if: always() && needs.d.result == 'success' && needs.build.result == 'success'
strategy:
fail-fast: false
matrix:
platform: [ ubuntu22 ]
runs-on: ubuntu-latest
container: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
env:
CC: gcc-11
CXX: g++-11
DCMAKE_BUILD_TYPE: 'Release'
steps:
- name: Update Package Index & Upgrade Packages
run: |
apt-get update
apt-get upgrade -y
apt update
apt 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: Download EOS EVM Silkworm builddir
uses: actions/download-artifact@v3
with:
name: build.tar.gz
- name: Extract EOS EVM Silkworm builddir
id: evm-silkworm-build
run: |
mkdir silkworm
mv build.tar.gz silkworm/
pushd silkworm
tar xvf build.tar.gz
pushd build
echo "EVM_SILKWORM_BUILD=$(pwd)" >> "$GITHUB_OUTPUT"
popd
- name: Test rpcdaemon_test
run: |
cd ${{ steps.evm-silkworm-build.outputs.EVM_SILKWORM_BUILD }}/cmd/test/
./rpcdaemon_test
- name: Test core_test
run: |
cd ${{ steps.evm-silkworm-build.outputs.EVM_SILKWORM_BUILD }}/cmd/test/
./core_test
- name: Test infra_test
run: |
cd ${{ steps.evm-silkworm-build.outputs.EVM_SILKWORM_BUILD }}/cmd/test/
./infra_test
- name: Test node_test
run: |
cd ${{ steps.evm-silkworm-build.outputs.EVM_SILKWORM_BUILD }}/cmd/test/
./node_test
- name: Test sync_test
run: |
cd ${{ steps.evm-silkworm-build.outputs.EVM_SILKWORM_BUILD }}/cmd/test/
./sync_test