Skip to content

Add Zombienet integration test and bootstrap a demo community #516

Add Zombienet integration test and bootstrap a demo community

Add Zombienet integration test and bootstrap a demo community #516

Workflow file for this run

name: CI
on:
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+.[0-9]+*'
pull_request:
branches: [ master ]
workflow_dispatch:
inputs:
verbose:
description: "Set --verbose to get verbose build output"
required: false
default: 'true'
env:
VERBOSE: ${{ github.events.input.verbose }}
# Cancel a currently running workflow from the same PR, branch or tag when a new workflow is
# triggered (ref https://stackoverflow.com/a/72408109)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# build_primary_binaries:
# name: Primary build ${{ matrix.binary }} for ${{ matrix.rust-target }} on (${{ matrix.os }})
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [ ubuntu-20.04 ]
# rust: [ stable ]
# binary: [ release ]
# env:
# RUST_BACKTRACE: full
# RUSTV: ${{ matrix.rust }}
# TARGET: ${{ matrix.rust-target }}
# RUST_BIN_DIR: target/${{ matrix.rust-target }}/debug
# RELEASE_NAME: debug
# steps:
# - uses: actions/checkout@v4
# - name: Install protoc
# run: sudo apt-get install protobuf-compiler
#
# - name: Print env
# run: |
# echo "RUST_BIN_DIR = ${{ env.RUST_BIN_DIR }} "
#
# # With rustup's nice new toml format, we just need to run rustup show to install the toolchain
# # https://github.com/actions-rs/toolchain/issues/126#issuecomment-782989659
# - name: Setup Rust toolchain
# run: rustup show
#
# - uses: Swatinem/rust-cache@v2
# with:
# key: ${{ matrix.os }}-${{ env.RUST_BIN_DIR }}-${{ matrix.binary }}
#
# - name: Release
# if: ${{ matrix.binary == 'release' }}
# run: cargo build --locked --release
#
# # Upload artifacts
# - name: Upload encointer-collator
# uses: actions/upload-artifact@v4
# with:
# # name: encointer-collator-${{ github.sha }}
# name: encointer-collator
# path: target/release/encointer-collator
#
# cargo-toml-fmt:
# runs-on: ubuntu-latest
# container: "tamasfe/taplo:0.7.0-alpine"
# steps:
# - uses: actions/checkout@v4
#
# - name: Run Taplo fmt
# run: taplo fmt --check
#
# - name: Fail-fast; cancel other jobs
# if: failure()
# uses: andymckay/[email protected]
#
# create_artifacts:
# needs: [ build_primary_binaries ]
# runs-on: ubuntu-20.04
# env:
# CHAIN_SPEC: ${{ matrix.chain }}-${{ matrix.config }}
# strategy:
# fail-fast: false
# matrix:
# chain: [ encointer ]
# config: [ rococo, westend, kusama ]
# steps:
# - name: Checkout
# uses: actions/checkout@v4
#
# - uses: actions/download-artifact@v4
# with:
# name: encointer-collator-${{ github.sha }}
#
# - name: 'Create binaries for artifacts'
# # The build-spec cmd does not create a deterministic key order in the produced json. Hence, we sort the keys
# # before we use it to deterministically create the state.
# run: |
# chmod +x ./encointer-collator
# ./encointer-collator build-spec --chain ${{ env.CHAIN_SPEC }} --disable-default-bootnode --raw > ${{ env.CHAIN_SPEC }}-unsorted.json
# jq --sort-keys . ${{ env.CHAIN_SPEC }}-unsorted.json > ${{ env.CHAIN_SPEC }}.json
# ./encointer-collator export-genesis-state --chain ${{ env.CHAIN_SPEC }}.json > ${{ env.CHAIN_SPEC }}.json.state
# ./encointer-collator export-genesis-state --chain ${{ env.CHAIN_SPEC }} > ${{ env.CHAIN_SPEC }}.state
#
# - name: Compute file metadata
# id: vars
# run: |
# sha256sum ${{ env.CHAIN_SPEC }}.state >> checksums.txt
# sha256sum ${{ env.CHAIN_SPEC }}.json >> checksums.txt
# sha256sum ${{ env.CHAIN_SPEC }}.json.state >> checksums.txt
#
# - name: Upload ${{ env.CHAIN_SPEC }} Files
# uses: actions/upload-artifact@v4
# with:
# name: ${{ env.CHAIN_SPEC }}-genesis-spec-${{ github.sha }}
# path: |
# checksums.txt
# ${{ env.CHAIN_SPEC }}.state
# ${{ env.CHAIN_SPEC }}.json
# ${{ env.CHAIN_SPEC }}.json.state
integration-test:
# name: ${{ matrix.test }}
name: integration-test
runs-on: ubuntu-latest
# needs: build_primary_binaries
# strategy:
# matrix:
# test: [
# test_bootstrap_demo_community.sh,
# # test_bot_community.sh,
# # test_register_business.sh
# ]
env:
ZOMBIENET_VERSION: v1.3.116
steps:
- uses: actions/checkout@v4
- name: Create testing directories
run: mkdir -p zombienet-tests/bin
- name: Setup zombienet binaries
run: |
mkdir -p zombienet-tests/bin
cd zombienet-tests/bin
wget -q "https://github.com/paritytech/zombienet/releases/download/${{ env.ZOMBIENET_VERSION }}/zombienet-linux-x64"
chmod +x zombienet-linux-x64
./zombienet-linux-x64 setup polkadot -y || :
./zombienet-linux-x64 version
- name: Download Encointer Collator
uses: actions/download-artifact@v4
with:
# name: encointer-collator-${{ github.sha }}
name: encointer-collator
github-token: ${{ github.token }}
run-id: 12772420910
- name: fix permissions of artifacts and move to test directory
run: |
chmod +x encointer-collator
cp encointer-collator zombienet-tests/bin
- name: Start zombienet-setup
# start setup and wait until the parachain produces blocks
run: |
zombienet-tests/bin/zombienet-linux-x64 spawn --provider native zombienet/github-actions-setup.toml &
echo "setup zombienet, sleep for 100 secs until parachain produces blocks"
sleep 100
- name: Bootstrap Demo Community
run: ./scripts/docker_run_encointer_client_bootstrap_demo_community.sh
# todo: later for bot community
# - name: start faucet service
# run: |
# cd client
# python faucet.py &
#
# - name: start phase accelerator service
# run: |
# cd client
# python phase.py --idle-blocks 3 &
# release:
# name: Draft Release
# if: startsWith(github.ref, 'refs/tags/')
# runs-on: ubuntu-latest
# needs: [ create_artifacts, build_primary_binaries ]
# outputs:
# release_url: ${{ steps.create-release.outputs.html_url }}
# asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
# steps:
# - uses: actions/checkout@v4
#
# - name: Download Encointer Collator
# uses: actions/download-artifact@v4
# with:
# name: encointer-collator-${{ github.sha }}
#
# - name: Create required package.json
# run: test -f package.json || echo '{}' >package.json
#
# - name: Changelog
# uses: scottbrenner/generate-changelog-action@master
# id: Changelog
#
# - name: Display structure of downloaded files
# run: ls -R
# working-directory: .
#
# - name: Release
# id: create-release
# uses: softprops/action-gh-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# body: |
# ${{ steps.Changelog.outputs.changelog }}
# draft: true
# files: |
# encointer-collator