test: a test framework for verifying upgrade of Zoe and ZCF #13288
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: Chain deployment test | |
on: | |
# Use the following to explicitly start this workflow. | |
# packages/deployment/scripts/start-deployment-test.sh <BRANCH-OR-TAG> | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
- release-pismo | |
- beta | |
tags: | |
- '@agoric/sdk@*' | |
pull_request: | |
merge_group: | |
schedule: | |
- cron: '17 6 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
deployment-test: | |
runs-on: ubuntu-22.04 # jammy (LTS) | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
path: ./agoric-sdk | |
- run: sudo packages/deployment/scripts/install-deps.sh | |
working-directory: ./agoric-sdk | |
- uses: ./agoric-sdk/.github/actions/restore-golang | |
with: | |
go-version: '1.20' | |
path: ./agoric-sdk | |
- uses: ./agoric-sdk/.github/actions/restore-node | |
with: | |
node-version: 18.x | |
path: ./agoric-sdk | |
# Forces xsnap to initialize all memory to random data, which increases | |
# the chances the content of snapshots may deviate between validators | |
xsnap-random-init: '1' | |
# Select a branch on loadgen to test against by adding text to the body of the | |
# pull request. For example: #loadgen-branch: user-123-update-foo | |
# The default is 'main' | |
- name: Get the appropriate loadgen branch | |
id: get-loadgen-branch | |
uses: actions/github-script@v6 | |
with: | |
result-encoding: string | |
script: | | |
let branch = 'main'; | |
if (context.payload.pull_request) { | |
const { body } = context.payload.pull_request; | |
const regex = /^\#loadgen-branch:\s+(\S+)/m; | |
const result = regex.exec(body); | |
if (result) { | |
branch = result[1]; | |
} | |
} | |
console.log(branch); | |
return branch; | |
- name: Check out loadgen | |
uses: actions/checkout@v3 | |
with: | |
repository: Agoric/testnet-load-generator | |
path: ./testnet-load-generator | |
ref: ${{steps.get-loadgen-branch.outputs.result}} | |
- name: Build cosmic-swingset dependencies | |
working-directory: ./agoric-sdk | |
run: | | |
set -e | |
cd packages/cosmic-swingset | |
make install | |
- name: Make networks directory | |
run: | | |
set -e | |
mkdir networks | |
- name: Run integration test | |
working-directory: ./networks | |
run: | | |
set -xe | |
DOCKER_VOLUMES="$PWD/../agoric-sdk:/usr/src/agoric-sdk" \ | |
LOADGEN=1 \ | |
../agoric-sdk/packages/deployment/scripts/integration-test.sh | |
timeout-minutes: 90 | |
env: | |
NETWORK_NAME: chaintest | |
- name: capture results | |
if: always() | |
working-directory: ./networks | |
run: | | |
NOW=$(date -u +%Y%m%dT%H%M%S) | |
echo "NOW=$NOW" >> "$GITHUB_ENV" | |
# Stop the chain from running. | |
../agoric-sdk/packages/deployment/scripts/setup.sh play stop || true | |
# Get the results. | |
../agoric-sdk/packages/deployment/scripts/capture-integration-results.sh "${{ job.status == 'failure' }}" | |
# Tear down the nodes. | |
echo yes | ../agoric-sdk/packages/deployment/scripts/setup.sh destroy || true | |
env: | |
NETWORK_NAME: chaintest | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: deployment-test-results-${{ env.NOW }} | |
path: ./networks/chaintest/results | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./agoric-sdk/.github/actions/notify-status | |
with: | |
webhook: ${{ secrets.SLACK_WEBHOOK_URL }} | |
from: ${{ secrets.NOTIFY_EMAIL_FROM }} | |
to: ${{ secrets.NOTIFY_EMAIL_TO }} | |
password: ${{ secrets.NOTIFY_EMAIL_PASSWORD }} |