Test all Packages #23550
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: Test all Packages | |
# run on all PRs (even the ones that target other branches) | |
on: | |
pull_request: | |
merge_group: | |
push: | |
branches: [master] | |
schedule: | |
# We start a little earlier to give our build cache time to populate. | |
- cron: '47 5 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
AGORIC_AVA_USE_TAP: true | |
TEST_COLLECT: 'tee -a _testoutput.txt' | |
NODE_V8_COVERAGE: coverage | |
# this is required, since explicitly setting bash as shell enables pipefail, which is not | |
# on by default. This is required to fail correctly when teeing output to a file to collect | |
# test instrumentation | |
defaults: | |
run: | |
shell: bash | |
# set ESM_DISABLE_CACHE=true (will be JSON parsed) | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: ['16.x', '18.x'] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ matrix.node-version }} | |
dependency-graph: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install graphviz | |
run: sudo apt install -y graphviz | |
- name: Check for cycles | |
run: scripts/check-dependency-cycles.sh 1 | |
################## | |
# Lint tests | |
# We run per package bc of https://github.com/typescript-eslint/typescript-eslint/issues/1192 | |
# We split the package tests into two jobs because type linting | |
# is inefficient and slow https://github.com/typescript-eslint/typescript-eslint/issues/2094 | |
lint-primary: | |
timeout-minutes: 10 | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: '18.x' | |
# first job also does repo-level linting | |
- name: lint repo format | |
run: yarn lint:format | |
# eslint | |
- name: yarn lint primary | |
run: ./scripts/lint-with-types.sh primary | |
lint-rest: | |
timeout-minutes: 10 | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: '18.x' | |
- name: yarn lint rest | |
run: ./scripts/lint-with-types.sh rest | |
################## | |
# Fast-running tests run as a group: | |
test-quick: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
# We run separate steps for each package, to make it easier to drill down | |
# into errors. If we wanted to just run everything, run 'yarn test' from | |
# the top level. | |
# | |
# This list should include all packages, except ones that are in another | |
# category here, or that don't have a package.json. | |
#- name: yarn test (everything) | |
# run: yarn ${{ steps.vars.outputs.test }} | |
- name: yarn test (access-token) | |
if: (success() || failure()) | |
run: cd packages/access-token && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (assert) | |
if: (success() || failure()) | |
run: cd packages/assert && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (deployment) | |
if: (success() || failure()) | |
run: cd packages/deployment && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (ERTP) | |
if: (success() || failure()) | |
run: cd packages/ERTP && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (governance) | |
if: (success() || failure()) | |
run: cd packages/governance && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (import-manager) | |
if: (success() || failure()) | |
run: cd packages/import-manager && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (notifier) | |
if: (success() || failure()) | |
run: cd packages/notifier && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (same-structure) | |
if: (success() || failure()) | |
run: cd packages/same-structure && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (sharing-service) | |
if: (success() || failure()) | |
run: cd packages/sharing-service && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (sparse-ints) | |
if: (success() || failure()) | |
run: cd packages/sparse-ints && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (spawner) | |
if: (success() || failure()) | |
run: cd packages/spawner && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (stat-logger) | |
if: (success() || failure()) | |
run: cd packages/stat-logger && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (store) | |
if: (success() || failure()) | |
run: cd packages/store && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (swing-store) | |
if: (success() || failure()) | |
run: cd packages/swing-store && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (cosmic-proto) | |
if: (success() || failure()) | |
run: cd packages/cosmic-proto && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-quick2: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- name: yarn test (agoric-cli) | |
if: (success() || failure()) | |
run: cd packages/agoric-cli && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (cosmos) | |
if: (success() || failure()) | |
run: cd golang/cosmos && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (cache) | |
if: (success() || failure()) | |
run: cd packages/cache && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (casting) | |
if: (success() || failure()) | |
run: cd packages/casting && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (internal) | |
if: (success() || failure()) | |
run: cd packages/internal && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (pegasus) | |
if: (success() || failure()) | |
run: cd packages/pegasus && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (smart-wallet) | |
if: (success() || failure()) | |
run: cd packages/smart-wallet && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (swingset-runner) | |
if: (success() || failure()) | |
run: cd packages/swingset-runner && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (telemetry) | |
if: (success() || failure()) | |
run: cd packages/telemetry && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (deploy-script-support) | |
if: (success() || failure()) | |
run: cd packages/deploy-script-support && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (wallet) | |
if: (success() || failure()) | |
run: cd packages/wallet && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (wallet/api) | |
if: (success() || failure()) | |
run: cd packages/wallet/api && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (eslint-config) | |
if: (success() || failure()) | |
run: cd packages/eslint-config && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (vat-data) | |
if: (success() || failure()) | |
run: cd packages/vat-data && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (time) | |
if: (success() || failure()) | |
run: cd packages/time && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (swingset-liveslots) | |
if: (success() || failure()) | |
run: cd packages/swingset-liveslots && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (swingset-xsnap-supervisor) | |
if: (success() || failure()) | |
run: cd packages/swingset-xsnap-supervisor && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (zone) | |
if: (success() || failure()) | |
run: cd packages/zone && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
# The meta-test! | |
- name: Check for untested packages | |
if: (success() || failure()) | |
run: node ./scripts/check-untested-packages.mjs | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
############## | |
# Long-running tests are executed individually. | |
test-solo: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# test:xs is noop in solo/package.json | |
engine: ['16.x', '18.x'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- name: yarn test (solo) | |
if: (success() || failure()) | |
run: cd packages/solo && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-cosmic-swingset: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# test:xs is noop in cosmic-swingset/package.json | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- uses: ./.github/actions/restore-golang | |
with: | |
go-version: '1.20' | |
- name: yarn test (cosmic-swingset) | |
if: (success() || failure()) | |
run: cd packages/cosmic-swingset && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-inter-protocol: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# test:xs is noop in inter-protocol/package.json | |
engine: ['16.x', '18.x'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- name: yarn test (inter-protocol) | |
if: (success() || failure()) | |
run: cd packages/inter-protocol && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-vats: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- name: yarn test (vats) | |
if: (success() || failure()) | |
run: cd packages/vats && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
# The test-swingset* tests are split by alphabetical test name. | |
test-swingset: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
id: restore-node | |
- run: echo "ENDO_BRANCH=${{ steps.restore-node.outputs.endo-branch }}" >> $GITHUB_ENV | |
# END-TEST-BOILERPLATE | |
- name: yarn test (SwingSet) | |
if: (success() || failure()) | |
run: cd packages/SwingSet && yarn ${{ steps.vars.outputs.test }} 'test/**/test-[A-Da-d]*.js' | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-swingset2: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
id: restore-node | |
- run: echo "ENDO_BRANCH=${{ steps.restore-node.outputs.endo-branch }}" >> $GITHUB_ENV | |
# END-TEST-BOILERPLATE | |
- name: yarn test (SwingSet) | |
if: (success() || failure()) | |
run: cd packages/SwingSet && yarn ${{ steps.vars.outputs.test }} 'test/**/test-[E-Ie-i]*.js' | $TEST_COLLECT | |
- name: yarn test (xsnap-lockdown) | |
if: (success() || failure()) | |
run: cd packages/xsnap-lockdown && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: yarn test (xsnap) | |
if: (success() || failure()) | |
run: cd packages/xsnap && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
# explicitly test the XS worker, for visibility | |
- name: yarn test (SwingSet XS Worker) | |
if: (success() || failure()) && matrix.engine != 'xs' | |
run: cd packages/SwingSet && yarn test:xs-worker | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-swingset3: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
id: restore-node | |
- run: echo "ENDO_BRANCH=${{ steps.restore-node.outputs.endo-branch }}" >> $GITHUB_ENV | |
# END-TEST-BOILERPLATE | |
- name: yarn test (SwingSet) | |
if: (success() || failure()) | |
run: cd packages/SwingSet && yarn ${{ steps.vars.outputs.test }} 'test/**/test-[J-Rj-r]*.js' | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-swingset4: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs' || 'test' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
id: restore-node | |
- run: echo "ENDO_BRANCH=${{ steps.restore-node.outputs.endo-branch }}" >> $GITHUB_ENV | |
# END-TEST-BOILERPLATE | |
- name: yarn test (SwingSet) | |
if: (success() || failure()) | |
run: cd packages/SwingSet && yarn ${{ steps.vars.outputs.test }} 'test/**/test-[S-Zs-z0-9]*.js' | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-zoe-unit: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
# END-TEST-BOILERPLATE | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs-unit' || 'test:unit' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
# BEGIN-TEST-BOILERPLATE | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- name: yarn test (zoe) | |
if: (success() || failure()) | |
timeout-minutes: 30 | |
run: cd packages/zoe && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-zoe-swingset: | |
# BEGIN-TEST-BOILERPLATE | |
timeout-minutes: 30 | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
engine: ['16.x', '18.x', 'xs'] | |
steps: | |
- name: set vars | |
id: vars | |
# END-TEST-BOILERPLATE | |
run: | | |
echo "node-version=${{ matrix.engine == 'xs' && '18.x' || matrix.engine }}" >> $GITHUB_OUTPUT | |
echo "test=${{ matrix.engine == 'xs' && 'test:xs-worker' || 'test:swingset' }}" >> $GITHUB_OUTPUT | |
echo "GH_ENGINE=${{ matrix.engine }}" >> $GITHUB_ENV | |
# BEGIN-TEST-BOILERPLATE | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/restore-node | |
with: | |
node-version: ${{ steps.vars.outputs.node-version }} | |
# END-TEST-BOILERPLATE | |
- name: yarn test (zoe) | |
if: (success() || failure()) | |
timeout-minutes: 30 | |
run: cd packages/zoe && yarn ${{ steps.vars.outputs.test }} | $TEST_COLLECT | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} | |
codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
test-docker-build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
strategy: | |
matrix: | |
bootstrap-version: ['test', 'main'] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: docker build (sdk) | |
run: cd packages/deployment && ./scripts/test-docker-build.sh | $TEST_COLLECT | |
- name: docker build upgrade test | |
run: cd packages/deployment/upgrade-test && docker build --build-arg BOOTSTRAP_MODE=${{ matrix.bootstrap-version }} --build-arg DEST_IMAGE=ghcr.io/agoric/agoric-sdk:latest -t docker-upgrade-test:latest -f Dockerfile upgrade-test-scripts | |
- name: docker run upgrade final stage | |
run: docker run --env "DEST=0" docker-upgrade-test:latest | |
- name: notify on failure | |
if: failure() && github.event_name != 'pull_request' | |
uses: ./.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 }} | |
- uses: ./.github/actions/post-test | |
if: (success() || failure()) | |
continue-on-error: true | |
timeout-minutes: 4 | |
with: | |
datadog-token: ${{ secrets.DATADOG_API_KEY }} |