Skip to content

fix(connect): Device cancelable prompts (pin, word, passphrase) #2730

fix(connect): Device cancelable prompts (pin, word, passphrase)

fix(connect): Device cancelable prompts (pin, word, passphrase) #2730

Workflow file for this run

name: "[Test] connect core e2e"
# run only if there are changes in connect or related libs paths
on:
schedule:
# Runs at midnight UTC every day at 01:00 AM CET
- cron: "0 0 * * *"
push:
branches: [release/connect/**]
pull_request:
paths:
- "packages/blockchain-link/**"
- "packages/connect-common/**"
- "packages/connect-iframe/**"
- "packages/connect-web/**"
- "packages/connect/**"
- "packages/protobuf/**"
- "packages/schema-utils/**"
- "packages/transport/**"
- "packages/utils/**"
- "packages/utxo-lib/**"
- "docker/**"
- "submodules/trezor-common/**"
- "yarn.lock"
- ".github/workflows/test-connect.yml"
- ".github/workflows/template-connect-test-params.yml"
- "docker/docker-connect-test.sh"
- "docker/docker-compose.connect-test.yml"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
# todo: meaning of 'build' job is questionable. only 'web' tests use part of this jobs output
build:
if: github.repository == 'trezor/trezor-suite'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: yarn
cache-dependency-path: "**/yarn.lock"
- run: |
echo -e "\nenableScripts: false" >> .yarnrc.yml
- run: yarn workspaces focus @trezor/connect-iframe @trezor/connect-web
- run: yarn workspace @trezor/connect-iframe build
- run: yarn workspace @trezor/connect-web build
# upload + download takes longer than doing yarn build:libs
- name: Upload build connect-web
uses: actions/upload-artifact@v4
with:
name: build-artifact-connect-web
path: packages/connect-web/build
- name: Upload build connect-iframe
uses: actions/upload-artifact@v4
with:
name: build-artifact-connect-iframe
path: packages/connect-iframe/build
set-matrix:
runs-on: ubuntu-latest
outputs:
dailyMatrix: ${{ steps.set-matrix-daily.outputs.dailyMatrix }}
otherDevicesMatrix: ${{ steps.set-matrix-other-devices.outputs.otherDevicesMatrix }}
legacyFirmwareMatrix: ${{ steps.set-matrix-legacy-firmware.outputs.legacyFirmwareMatrix }}
canaryFirmwareMatrix: ${{ steps.set-matrix-canary-firmware.outputs.canaryFirmwareMatrix }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set daily matrix
id: set-matrix-daily
run: echo "dailyMatrix=$(node ./scripts/ci/connect-test-matrix-generator.js daily)" >> $GITHUB_OUTPUT
- name: Set legacy devices matrix
id: set-matrix-legacy-firmware
run: echo "legacyFirmwareMatrix=$(node ./scripts/ci/connect-test-matrix-generator.js legacyFirmware)" >> $GITHUB_OUTPUT
- name: Set canary devices matrix
id: set-matrix-canary-firmware
run: echo "canaryFirmwareMatrix=$(node ./scripts/ci/connect-test-matrix-generator.js canaryFirmware)" >> $GITHUB_OUTPUT
- name: Set other devices matrix
id: set-matrix-other-devices
run: echo "otherDevicesMatrix=$(node ./scripts/ci/connect-test-matrix-generator.js otherDevices)" >> $GITHUB_OUTPUT
connect-PR:
needs: [build, set-matrix]
name: PR-${{ matrix.name }}
uses: ./.github/workflows/template-connect-test-params.yml
with:
testPattern: ${{ matrix.pattern }}
methods: ${{ matrix.methods }}
testsFirmware: ${{ matrix.firmware }}
testDescription: ${{ matrix.name }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.set-matrix.outputs.dailyMatrix) }}
connect-randomized-order:
needs: [build, set-matrix]
if: github.event_name == 'schedule' && github.repository == 'trezor/trezor-suite'
name: randomized-${{ matrix.name }}
uses: ./.github/workflows/template-connect-test-params.yml
with:
testPattern: ${{ matrix.pattern }}
methods: ${{ matrix.methods }}
testsFirmware: ${{ matrix.firmware }}
testDescription: ${{ matrix.name }}-${{ matrix.firmware }}
testRandomizedOrder: true
webEnvironment: false
nodeEnvironment: true
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.set-matrix.outputs.dailyMatrix) }}
connect-legacy-firmware:
needs: [build, set-matrix]
if: github.event_name == 'schedule' && github.repository == 'trezor/trezor-suite'
name: legacy-${{ matrix.name }}
uses: ./.github/workflows/template-connect-test-params.yml
with:
testPattern: ${{ matrix.pattern }}
methods: ${{ matrix.methods }}
testsFirmware: ${{ matrix.firmware }}
testDescription: ${{ matrix.name }}-${{ matrix.firmware }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.set-matrix.outputs.legacyFirmwareMatrix) }}
connect-canary-firmware:
needs: [build, set-matrix]
if: github.event_name == 'schedule' && github.repository == 'trezor/trezor-suite'
name: canary-${{ matrix.name }}
uses: ./.github/workflows/template-connect-test-params.yml
with:
testPattern: ${{ matrix.pattern }}
methods: ${{ matrix.methods }}
testsFirmware: ${{ matrix.firmware }}
testDescription: ${{ matrix.name }}-${{ matrix.firmware }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.set-matrix.outputs.canaryFirmwareMatrix) }}
connect-other-devices:
needs: [build, set-matrix]
if: github.event_name == 'schedule' && github.repository == 'trezor/trezor-suite'
name: other-devices-${{ matrix.name }}-${{ matrix.model }}
uses: ./.github/workflows/template-connect-test-params.yml
with:
testPattern: ${{ matrix.pattern }}
methods: ${{ matrix.methods }}
testsFirmware: ${{ matrix.firmware }}
testFirmwareModel: ${{ matrix.model }}
nodeEnvironment: true
webEnvironment: false
testDescription: ${{ matrix.name }}-${{ matrix.firmware }}-${{ matrix.model }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.set-matrix.outputs.otherDevicesMatrix) }}