mirror of
https://github.com/trezor/trezor-suite.git
synced 2026-03-03 05:55:03 +01:00
221 lines
9.6 KiB
YAML
221 lines
9.6 KiB
YAML
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-data/**"
|
|
- "packages/connect-web/**"
|
|
- "packages/connect/**"
|
|
- "packages/protobuf/**"
|
|
- "packages/schema-utils/**"
|
|
- "packages/transport/**"
|
|
- "packages/utxo-lib/**"
|
|
- "docker/**"
|
|
- "submodules/trezor-common/**"
|
|
- ".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:
|
|
set-matrix:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
outputs:
|
|
dailyMatrix: ${{ steps.set-matrix-daily.outputs.matrix }}
|
|
dailyWebMatrix: ${{ steps.set-matrix-daily-web.outputs.matrix }}
|
|
nightlyT3W1Matrix: ${{ steps.set-matrix-nightly-t3w1.outputs.matrix }}
|
|
otherDevicesMatrix: ${{ steps.set-matrix-other-devices.outputs.matrix }}
|
|
allFwsMatrix: ${{ steps.set-matrix-all-firmwares.outputs.matrix }}
|
|
allTransportsMatrix: ${{ steps.set-matrix-all-transports.outputs.matrix }}
|
|
modelOneMatrix: ${{ steps.set-matrix-model-one.outputs.matrix }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set daily matrix
|
|
id: set-matrix-daily
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=T3W1 --firmware=2-latest --env=node --groups=all --disable_cache_tx=false --transport=node-bridge)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set daily web matrix
|
|
id: set-matrix-daily-web
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=T3W1 --firmware=2-latest --env=web --groups=api,init --disable_cache_tx=true --transport=node-bridge)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set nightly T3W1 matrix
|
|
id: set-matrix-nightly-t3w1
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=T3W1 --firmware=2-latest --env=all --groups=all --disable_cache_tx=false --transport=node-bridge)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set all firmwares matrix
|
|
id: set-matrix-all-firmwares
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=T2T1 --firmware=all --env=all --groups=all --disable_cache_tx=false --transport=node-bridge)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set other devices matrix
|
|
id: set-matrix-other-devices
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=all --firmware=2-main --env=node --groups=api --disable_cache_tx=true --transport=node-bridge)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set all transports matrix
|
|
id: set-matrix-all-transports
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=T2T1 --firmware=2-latest --env=node --groups=api --disable_cache_tx=true --transport=all)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set trezor model one matrix
|
|
id: set-matrix-model-one
|
|
run: echo "matrix=$(node ./scripts/ci/connect-test-matrix-generator.js --model=T1B1 --firmware=1-latest --env=node --groups=api --disable_cache_tx=true --transport=node-bridge)" >> $GITHUB_OUTPUT
|
|
|
|
PR-check:
|
|
needs: [set-matrix]
|
|
name: PR-check ${{ matrix.key }}
|
|
if: github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.env }}-${{ matrix.groups.pattern }}-${{ matrix.groups.name }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.dailyMatrix) }}
|
|
|
|
PR-check-web:
|
|
needs: [set-matrix]
|
|
name: PR-check-web ${{ matrix.key }}
|
|
if: github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.env }}-${{ matrix.groups.pattern }}-${{ matrix.groups.name }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.dailyWebMatrix) }}
|
|
|
|
PR-nightly-t3w1:
|
|
needs: [set-matrix]
|
|
name: PR-nightly-t3w1 ${{ matrix.key }}
|
|
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.env }}-${{ matrix.groups.pattern }}-${{ matrix.groups.name }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.nightlyT3W1Matrix) }}
|
|
|
|
randomized-order:
|
|
needs: [set-matrix]
|
|
name: randomized ${{ matrix.key }}
|
|
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.env }}-${{ matrix.groups.pattern }}-${{ matrix.groups.name }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
testRandomizedOrder: true
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.dailyMatrix) }}
|
|
|
|
all-fws:
|
|
needs: [set-matrix]
|
|
name: all-fws ${{ matrix.key }} ${{ matrix.firmware }}
|
|
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.firmware }}-${{ matrix.groups.pattern }}-${{ matrix.groups.name }}-${{ matrix.env }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.allFwsMatrix) }}
|
|
|
|
all-models-api:
|
|
needs: [set-matrix]
|
|
name: all-models-api ${{ matrix.key }}
|
|
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.model }}-${{ matrix.firmware }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.otherDevicesMatrix) }}
|
|
|
|
all-transports:
|
|
needs: [set-matrix]
|
|
name: all-transports-api ${{ matrix.key }}
|
|
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.transport }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.allTransportsMatrix) }}
|
|
|
|
model-one-api:
|
|
needs: [set-matrix]
|
|
name: model-one-api ${{ matrix.key }}
|
|
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'trezor/trezor-suite'
|
|
uses: ./.github/workflows/template-connect-test-params.yml
|
|
with:
|
|
testPattern: ${{ matrix.groups.pattern }}
|
|
includeFilter: ${{ matrix.groups.includeFilter }}
|
|
testsFirmware: ${{ matrix.firmware }}
|
|
testDescription: ${{ matrix.model }}-${{ matrix.firmware }}
|
|
disable_cache_tx: ${{ matrix.disable_cache_tx }}
|
|
transport: ${{ matrix.transport }}
|
|
testEnv: ${{ matrix.env }}
|
|
testFirmwareModel: ${{ matrix.model }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.set-matrix.outputs.modelOneMatrix) }}
|