Feat convert cy pw suite settings #56
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-web playwright e2e" | |
# this action runs basic test suite for suite-web and and builds/deploys the web app to dev.suite.sldev.cz/suite-web/<branch-name>/web | |
permissions: | |
id-token: write # for fetching the OIDC token | |
contents: read # for actions/checkout | |
# run only if there are changes in suite or related libs paths | |
on: | |
pull_request: | |
branches: | |
- develop | |
paths-ignore: | |
- "suite-native/**" | |
- "packages/connect*/**" | |
# - "packages/suite-desktop*/**" | |
- "packages/react-native-usb/**" | |
# ignore unrelated github workflows config files | |
- ".github/workflows/connect-analytics" | |
- ".github/workflows/connect-common" | |
- ".github/workflows/connect-examples" | |
- ".github/workflows/connect-explorer" | |
- ".github/workflows/connect-iframe" | |
- ".github/workflows/connect-mobile" | |
- ".github/workflows/connect-plugin-*" | |
- ".github/workflows/connect-popup" | |
- ".github/workflows/connect-theme" | |
- ".github/workflows/connect-ui" | |
- ".github/workflows/connect-webextension" | |
- ".github/workflows/suite-native*" | |
- ".github/workflows/build-desktop*" | |
- ".github/workflows/release*" | |
- ".github/workflows/template*" | |
- ".github/actions/release*/**" | |
workflow_dispatch: | |
env: | |
DEV_SERVER_URL: "https://dev.suite.sldev.cz" | |
STAGING_SUITE_SERVER_URL: "https://staging-suite.trezor.io" | |
jobs: | |
build-web: | |
if: github.repository == 'trezor/trezor-suite' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure aws credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::538326561891:role/gh_actions_trezor_suite_dev_deploy | |
aws-region: eu-central-1 | |
- name: Extract branch name | |
id: extract_branch | |
run: | | |
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: yarn | |
- name: Install dependencies | |
run: | | |
echo -e "\nenableScripts: false" >> .yarnrc.yml | |
echo -e "\nenableHardenedMode: false" >> .yarnrc.yml | |
yarn workspaces focus @trezor/suite-web @trezor/connect-iframe @trezor/connect-web @trezor/suite-data @trezor/suite-build | |
- name: Build suite-web | |
env: | |
ASSET_PREFIX: /suite-web/${{ steps.extract_branch.outputs.branch }}/web | |
DESKTOP_APP_NAME: "Trezor-Suite" | |
run: | | |
yarn message-system-sign-config | |
yarn workspace @trezor/suite-data build:lib | |
yarn workspace @trezor/suite-web build | |
# this step should upload build result to s3 bucket dev.suite.sldev.cz using awscli | |
- name: Upload suite-web to dev.suite.sldev.cz | |
env: | |
DEPLOY_PATH: s3://dev.suite.sldev.cz/suite-web/${{ steps.extract_branch.outputs.branch }} | |
run: | | |
aws s3 sync --delete ./packages/suite-web/build ${DEPLOY_PATH}/web | |
e2e-test-suite-web: | |
if: github.repository == 'trezor/trezor-suite' | |
runs-on: ubuntu-latest | |
needs: | |
- build-web | |
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" | |
# - 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.after}} | |
fetch-depth: 2 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: yarn | |
- name: Extract branch name | |
id: extract_branch | |
run: | | |
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
- name: Extract commit message | |
id: extract_commit_message | |
run: | | |
if [ "${{ github.event_name }}" == "pull_request" ]; then | |
git fetch origin +refs/pull/${{ github.event.pull_request.number }}/merge: --depth=1 | |
echo "message=$(git log --no-merges -1 --pretty=format:"%s")" >> $GITHUB_OUTPUT | |
else | |
echo "message=$(git log --no-merges -1 --pretty=format:"%s")" >> $GITHUB_OUTPUT | |
fi | |
- name: Install dependencies and pull docker images | |
env: | |
COMPOSE_FILE: ./docker/docker-compose.suite-ci-pw.yml | |
run: | | |
echo -e "\nenableScripts: false" >> .yarnrc.yml | |
echo -e "\nenableHardenedMode: false" >> .yarnrc.yml | |
yarn workspaces focus @trezor/suite-desktop-core | |
npx playwright install --with-deps chromium | |
docker compose pull ${{ matrix.CONTAINERS }} | |
- name: Run Playwright e2e tests | |
env: | |
COMPOSE_FILE: ./docker/docker-compose.suite-ci-pw.yml | |
BASE_URL: https://dev.suite.sldev.cz/suite-web/${{ steps.extract_branch.outputs.branch }}/web/ | |
## Keep retries enabled once stabilized | |
ALLOW_RETRY: true | |
TEST_GROUP: ${{ matrix.TEST_GROUP }} | |
GITHUB_ACTION: true | |
CURRENTS_PROJECT_ID: Og0NOQ | |
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 Web test group ${TEST_GROUP}" | |
yarn workspace @trezor/suite-desktop-core test:e2e:web --grep=${TEST_GROUP} | |
- name: Extract Trezor-user-env 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 | |
- name: Upload Trezor-user-env 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 | |
- 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 |