E2E tests #360
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: E2E tests | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
types: | |
- labeled | |
- synchronize | |
schedule: | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
inputs: | |
network: | |
description: 'Select the blockchain network for testing' | |
required: false | |
default: 'emerynet' | |
type: choice | |
options: | |
- local | |
- emerynet | |
- devnet | |
- xnet | |
phrase: | |
description: 'The mnemonic phrase for the account to use in testing' | |
required: false | |
type: string | |
a3p_image_tag: | |
description: 'Docker image tag for the a3p chain to use in testing' | |
required: false | |
type: string | |
concurrency: | |
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || | |
github.head_ref || github.ref }}' | |
cancel-in-progress: true | |
jobs: | |
e2e: | |
runs-on: ubuntu-latest | |
env: | |
NETWORK: >- | |
${{ inputs.network | |
|| contains(github.event.pull_request.labels.*.name, 'emerynet') && 'emerynet' | |
|| contains(github.event.pull_request.labels.*.name, 'devnet') && 'devnet' | |
|| contains(github.event.pull_request.labels.*.name, 'xnet') && 'xnet' | |
|| github.event_name == 'schedule' && 'emerynet' | |
|| 'local' | |
}} | |
steps: | |
- name: Print network name | |
run: echo "${{ env.NETWORK }}" | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Run e2e tests | |
run: | | |
docker compose -f tests/e2e/docker-compose.yml --profile $SYNPRESS_PROFILE up --build --exit-code-from synpress | |
env: | |
# conditionals based on github event | |
SYNPRESS_PROFILE: ${{ env.NETWORK != 'local' && 'daily-tests' || 'synpress' }} | |
CYPRESS_AGORIC_NET: ${{ env.NETWORK }} | |
# for docker-compose.yml | |
A3P_IMAGE_TAG: ${{ inputs.a3p_image_tag || 'latest'}} | |
COMPOSE_DOCKER_CLI_BUILD: 1 | |
DOCKER_BUILDKIT: 1 | |
DOCKER_DEFAULT_PLATFORM: linux/amd64 | |
NGROK_AUTH: ${{ secrets.NGROK_AUTH }} | |
NGROK_BASIC_AUTH: ${{ secrets.NGROK_BASIC_AUTH }} | |
CYPRESS_PRIVATE_KEY_WITH_FUNDS: ${{ secrets.CYPRESS_PRIVATE_KEY_WITH_FUNDS }} | |
ANVIL_FORK_URL: ${{ secrets.ANVIL_FORK_URL }} | |
GH_PAT: ${{ secrets.GH_PAT }} | |
GH_USERNAME: ${{ secrets.GH_USERNAME }} | |
CYPRESS_MNEMONIC_PHRASE: ${{ inputs.phrase }} | |
# cypress dashboard | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }} | |
COMMIT_INFO_SHA: ${{ github.event.pull_request.head.sha }} | |
- name: Archive e2e artifacts | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: e2e-artifacts | |
path: | | |
tests/e2e/docker/videos | |
tests/e2e/docker/videos-ci | |
tests/e2e/docker/screenshots | |
continue-on-error: true | |
- name: Notify About Failure | |
if: > | |
failure() && github.event_name != 'pull_request' && | |
github.repository_owner == 'agoric' | |
uses: ./.github/actions/notify-status | |
with: | |
webhook: ${{ secrets.SLACK_WEBHOOK_URL }} | |
continue-on-error: true |