What changed, and why it matters
This commit only changes the project's automated continuous integration (CI) pipeline. It moves the building and testing of a special 'prodtest emulator' for the T3W1 model from one CI job into its own separate CI job. There are no changes to the actual Trezor firmware code, device software, or any user-facing behavior. It is purely an internal testing workflow improvement.
No security action needed. This is a routine CI refactoring. Review can be limited to confirming the new job's matrix, artifact path, and test command are correct.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies .github/workflows/core.yml. It removes the ‘build_prodtest_emu’ step from the existing emulator test job and adds a new standalone ‘prodtest_emu’ job that builds the prodtest emulator for the T3W1 model, uploads the artifact, and runs ‘test_emu_prodtest’. No source code, build scripts, cryptographic logic, or device behavior is altered.
Changed components
.github/workflows/core.ymlInspect captured patch +30 / −2
diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml
index 220695e4..67896f77 100644
--- a/.github/workflows/core.yml
+++ b/.github/workflows/core.yml
@@ -140,8 +140,6 @@ jobs:
- uses: ./.github/actions/environment
- run: nix-shell --run "uv run make -C core build_bootloader_emu"
if: matrix.coins == 'universal' && matrix.asan == 'noasan'
- - run: nix-shell --run "uv run make -C core build_prodtest_emu"
- if: matrix.coins == 'universal' && matrix.type != 'debuglink' && matrix.model == 'T3W1'
- run: nix-shell --run "uv run make -C core build_unix_frozen"
- run: nix-shell --run "uv run make -C core test_emu_sanity"
- run: cp core/build-xtask/artifacts/latest/firmware-emu core/build-xtask/artifacts/latest/firmware-emu-${{ matrix.model }}-${{ matrix.coins }}${{ matrix.n4w1 && '-n4w1' || '' }}
@@ -197,6 +195,36 @@ jobs:
core/build-xtask/artifacts/latest/bootloader-emu
retention-days: 2
+ prodtest_emu:
+ name: Build and test prodtest emu (${{ matrix.model }})
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ strategy:
+ fail-fast: false
+ matrix:
+ model: [T3W1]
+ env:
+ SDL_VIDEODRIVER: dummy
+ TREZOR_MODEL: ${{ matrix.model }}
+ PYTEST_TIMEOUT: 400
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # actions/checkout@v6.0.2
+ with:
+ submodules: recursive
+ persist-credentials: false
+ - uses: ./.github/actions/environment
+ - name: Build prodtest emulator
+ run: nix-shell --run "uv run xtask build prodtest --model ${{ matrix.model }} --emulator"
+ - name: Upload prodtest emulator artifact
+ uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # actions/upload-artifact@v7.0.0
+ with:
+ name: prodtest-emu-${{ matrix.model }}
+ path: |
+ core/build-xtask/artifacts/${{ matrix.model }}/prodtest-emu
+ retention-days: 7
+ - name: Run prodtest device tests
+ run: nix-shell --run "uv run make -C core test_emu_prodtest"
+
core_unit_python_test:
name: Python unit tests (${{ matrix.model }}, ${{ matrix.coins }}, ${{ matrix.asan }})
runs-on: ubuntu-latest
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.