chore(ci): run web and desktop e2e test on release branch pushes #8973
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] suite-desktop e2e" | |
# this workflow builds a desktop version of Suite and runs basic test suite for it | |
on: | |
pull_request: | |
branches: | |
- develop | |
paths-ignore: | |
- "suite-native/**" | |
- "packages/connect*/**" | |
- "packages/react-native-usb/**" | |
# ignore unrelated github workflows config files | |
- ".github/workflows/connect*" | |
- ".github/workflows/suite-native*" | |
- ".github/workflows/build-desktop*" | |
- ".github/workflows/release*" | |
- ".github/workflows/template*" | |
push: | |
branches: | |
- release/2* | |
schedule: | |
- cron: "0 0 * * *" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
run-desktop-tests: | |
if: github.repository == 'trezor/trezor-suite' | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- TEST_GROUP: "@group=suite" | |
CONTAINERS: "trezor-user-env-unix" | |
- TEST_GROUP: "@group=device-management" | |
CONTAINERS: "trezor-user-env-unix" | |
- TEST_GROUP: "@group=settings" | |
CONTAINERS: "trezor-user-env-unix bitcoin-regtest" | |
# - TEST_GROUP: "@group=metadata" | |
# CONTAINERS: "trezor-user-env-unix" | |
# - TEST_GROUP: "@group=passphrase" | |
# CONTAINERS: "trezor-user-env-unix" | |
- TEST_GROUP: "@group=other" | |
CONTAINERS: "trezor-user-env-unix" | |
- TEST_GROUP: "@group=wallet" | |
CONTAINERS: "trezor-user-env-unix bitcoin-regtest" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: yarn | |
- name: Install dependencies, build libs and pull docker images | |
env: | |
COMPOSE_FILE: ./docker/docker-compose.suite-desktop-ci.yml | |
run: | | |
yarn install --immutable | |
yarn message-system-sign-config | |
yarn workspace @trezor/suite-data build:lib | |
yarn workspace @trezor/transport-bridge build:lib | |
docker compose pull ${{ matrix.CONTAINERS }} | |
- name: Build electron app.js for tests | |
run: | | |
yarn workspace @trezor/suite-desktop build:app | |
yarn workspace @trezor/suite-desktop build:ui | |
- name: Run Playwright e2e desktop tests | |
env: | |
COMPOSE_FILE: ./docker/docker-compose.suite-desktop-ci.yml | |
GITHUB_ACTION: true | |
CURRENTS_PROJECT_ID: 4ytF0E | |
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }} | |
CURRENTS_CI_BUILD_ID: pr-run-${{github.run_id}} | |
run: | | |
docker compose up -d ${{ matrix.CONTAINERS }} | |
echo "Starting Playwright Desktop test group ${{ matrix.TEST_GROUP }}" | |
yarn workspace @trezor/suite-desktop-core test:e2e:desktop --forbid-only --grep=${{ matrix.TEST_GROUP }} | |
- name: Extract Trezor-user-env and Regtest logs | |
if: ${{ ! cancelled() }} | |
run: | | |
docker cp docker-trezor-user-env-unix-1:/trezor-user-env/logs/debugging.log trezor-user-env-debugging.log || true | |
docker cp docker-trezor-user-env-unix-1:/trezor-user-env/logs/emulator_bridge.log tenv-emulator-bridge-debugging.log || true | |
docker cp docker-trezor-user-env-unix-1:/trezor-user-env/docker/version.txt trezor-user-env-version.txt || true | |
docker logs docker-electrum-regtest-1 > electrum-regtest.txt || true | |
- name: Upload Trezor-user-env and Regtest logs | |
if: ${{ ! cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: emulator-logs-${{ matrix.TEST_GROUP }} | |
path: | | |
trezor-user-env-debugging.log | |
tenv-emulator-bridge-debugging.log | |
trezor-user-env-version.txt | |
electrum-regtest.txt | |
retention-days: 30 | |
- name: Docker compose down | |
env: | |
COMPOSE_FILE: ./docker/docker-compose.suite-desktop-ci.yml | |
run: docker compose down | |
- name: Upload Playwright report | |
if: ${{ ! cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: playwright-report-${{ matrix.TEST_GROUP }} | |
path: ./packages/suite-desktop-core/playwright-report/ | |
retention-days: 30 |