What changed, and why it matters
This commit only changes internal CI (continuous integration) workflow files for running firmware upgrade tests. It adds a new hardware model (T3W1) to the test matrix, adjusts environment setup for that model, and renames an environment variable value from 'core'/'legacy' to specific model codes like 'T2T1', 'T3W1', 'T1B1'. There is no change to the actual Trezor firmware code, device behavior, or anything users interact with.
No security action needed. This is a routine CI maintenance change. Reviewers may verify the new T3W1 upgrade test path and environment selector work as intended in CI.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch modifies .github/workflows/core.yml and .github/workflows/legacy.yml. In core.yml, the upgrade test matrix gains T3W1 alongside T2T1, the TREZOR_UPGRADE_TEST env var is now set per-model via a ‘Set upgrade selector’ step, and conditional steps handle T3W1’s full-deps environment. In legacy.yml, TREZOR_UPGRADE_TEST is changed from ‘legacy’ to ‘T1B1’. These are purely test-infrastructure changes; no firmware source, crypto, or device logic is touched.
Changed components
.github/workflows/core.yml.github/workflows/legacy.ymlInspect captured patch +16 / −3
diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml
index a126b5f0..da2c3897 100644
--- a/.github/workflows/core.yml
+++ b/.github/workflows/core.yml
@@ -385,24 +385,34 @@ jobs:
matrix:
# FIXME: T3B1 https://github.com/trezor/trezor-firmware/issues/2724
# FIXME: T3T1 https://github.com/trezor/trezor-firmware/issues/3595
- model: [T2T1]
+ model: [T2T1, T3W1]
asan: ${{ fromJSON(needs.param.outputs.asan) }}
env:
- TREZOR_UPGRADE_TEST: core
PYTEST_TIMEOUT: 20
TESTOPTS: "--durations 10"
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # actions/checkout@v6.0.2
with:
submodules: recursive
+ - name: Set upgrade selector
+ run: |
+ echo "TREZOR_UPGRADE_TEST=${{ matrix.model }}" >> "$GITHUB_ENV"
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # actions/download-artifact@v8.0.0
with:
name: core-emu-${{ matrix.model }}-universal-debuglink-${{ matrix.asan }}
path: core/build
- run: chmod +x core/build/unix/trezor-emu-core*
- uses: ./.github/actions/environment
+ if: ${{ matrix.model != 'T3W1' }}
+ - uses: ./.github/actions/environment
+ if: ${{ matrix.model == 'T3W1' }}
+ with:
+ full-deps: true
- run: nix-shell --run "tests/download_emulators.sh ${{ matrix.model }}"
- run: nix-shell --run "uv run pytest tests/upgrade_tests"
+ if: ${{ matrix.model != 'T3W1' }}
+ - run: nix-shell --arg fullDeps true --run "uv run pytest tests/upgrade_tests"
+ if: ${{ matrix.model == 'T3W1' }}
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # actions/upload-artifact@v7.0.0
with:
name: core-test-upgrade-${{ matrix.model }}-${{ matrix.asan }}
@@ -431,6 +441,9 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # actions/checkout@v6.0.2
with:
submodules: recursive
+ - name: Set upgrade selector
+ run: |
+ echo "TREZOR_UPGRADE_TEST=${{ matrix.model }}" >> "$GITHUB_ENV"
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # actions/download-artifact@v8.0.0
with:
name: core-emu-${{ matrix.model }}-universal-debuglink-${{ matrix.asan }}
diff --git a/.github/workflows/legacy.yml b/.github/workflows/legacy.yml
index d74f5636..d5230eb9 100644
--- a/.github/workflows/legacy.yml
+++ b/.github/workflows/legacy.yml
@@ -164,7 +164,7 @@ jobs:
matrix:
asan: ${{ fromJSON(github.event_name == 'schedule' && '["noasan", "asan"]' || '["noasan"]') }}
env:
- TREZOR_UPGRADE_TEST: legacy
+ TREZOR_UPGRADE_TEST: T1B1
PYTEST_TIMEOUT: 120
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # actions/checkout@v6.0.2
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.