Use matrix strategy to run multiple e2edemo jobs #110
Workflow file for this run
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: Run E2E Demo | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
run-demo: | |
strategy: | |
matrix: | |
dst-chain: [hardhat, icon1] | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Setup config for dst chain | |
working-directory: ./e2edemo | |
run: | | |
TMPFILE=$(mktemp -p .) | |
jq '.link.dst="${{ matrix.dst-chain }}"' chain_config.json > $TMPFILE | |
mv -f $TMPFILE chain_config.json | |
- name: Start containers | |
working-directory: ./e2edemo | |
run: make start-nodes | |
- name: Setup Go 1.18 | |
uses: actions/setup-go@v3 | |
with: | |
go-version: '1.18.7' | |
- name: Build relay | |
run: make relay | |
- name: Setup node 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.15 | |
cache: 'npm' | |
cache-dependency-path: e2edemo/package-lock.json | |
- name: Install dependencies | |
working-directory: ./e2edemo | |
run: npm ci | |
- name: Build all contracts | |
working-directory: ./e2edemo | |
run: make build-all | |
- name: Setup ICON node | |
working-directory: ./e2edemo | |
env: | |
CI_WORKFLOW: true | |
run: make setup-node | |
- name: Deploy all contracts | |
working-directory: ./e2edemo | |
run: make deploy-all | |
- name: Start relay | |
working-directory: ./e2edemo | |
run: ./relay.sh & | |
- name: Run demo | |
working-directory: ./e2edemo | |
timeout-minutes: 5 | |
run: make run-demo | |
- name: Stop containers | |
if: ${{ always() }} | |
working-directory: ./e2edemo/docker | |
run: docker compose down |