diff --git a/.github/actions/ui-report/action.yml b/.github/actions/ui-report/action.yml
index c916d0fa669..3e21b566d40 100644
--- a/.github/actions/ui-report/action.yml
+++ b/.github/actions/ui-report/action.yml
@@ -4,6 +4,10 @@ inputs:
model:
description: 'Internal model name'
required: true
+ status:
+ description: 'Either "success" or "failure"'
+ required: false
+ default: "failure"
runs:
using: composite
steps:
@@ -22,6 +26,12 @@ runs:
mv tests/trezor.log $OUTDIR || true
diff -u tests/ui_tests/fixtures.json tests/ui_tests/fixtures.suggestion.json || true
tar -cf screens_$MODELJOB.tar tests/ui_tests/screens || true
+
+ if [ "${{ inputs.status }}" = "success" ]; then
+ cp core/assets/check24.png $OUTDIR/status.png
+ else
+ cp core/assets/x24.png $OUTDIR/status.png
+ fi
shell: sh
- name: Upload report
run: |
diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml
index 469aeaea8b3..b8388139d0e 100644
--- a/.github/workflows/core.yml
+++ b/.github/workflows/core.yml
@@ -13,10 +13,10 @@ env:
PULL_COMMENT: |
|core UI changes|device test|click test|persistence test|
|---------------|-----------|----------|----------------|
- |T2T1 Model T |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/master_diff.html)) |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/master_diff.html)) |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/master_diff.html))||
- |T2B1 Safe 3 |[#3280](https://github.com/trezor/trezor-firmware/issues/3280) |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/master_diff.html)) |[#2724](https://github.com/trezor/trezor-firmware/issues/2724) ||
- |T3T1 |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/master_diff.html)) |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/master_diff.html)) |[test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/master_diff.html))||
- |All |[main](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/index.html)([screens](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/master_diff.html)) ||
+ |T2T1 Model T | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_device_test/master_diff.html)) | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_click_test/master_diff.html)) | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2T1-core_persistence_test/master_diff.html))||
+ |T2B1 Safe 3 |[3280](https://github.com/trezor/trezor-firmware/issues/3280) | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T2B1-core_click_test/master_diff.html)) |[2724](https://github.com/trezor/trezor-firmware/issues/2724) ||
+ |T3T1 | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_device_test/master_diff.html)) | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_click_test/master_diff.html)) | [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T3T1-core_persistence_test/master_diff.html))||
+ |All | [main](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/index.html)([screens](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/master_diff.html)) ||
jobs:
core_firmware:
@@ -222,6 +222,7 @@ jobs:
- uses: ./.github/actions/ui-report
with:
model: ${{ matrix.model }}
+ status: ${{ job.status }}
if: ${{ always() && env.ACTIONS_DO_UI_TEST == 'true' }}
continue-on-error: true
- uses: ./.github/actions/ui-comment
@@ -271,6 +272,7 @@ jobs:
- uses: ./.github/actions/ui-report
with:
model: ${{ matrix.model }}
+ status: ${{ job.status }}
if: always()
continue-on-error: true
- run: mv core/src/.coverage core/.coverage.test_click || true
@@ -340,6 +342,7 @@ jobs:
- uses: ./.github/actions/ui-report
with:
model: ${{ matrix.model }}
+ status: ${{ job.status }}
if: always()
continue-on-error: true
- run: mv core/src/.coverage core/.coverage.test_persistence || true
@@ -636,7 +639,13 @@ jobs:
continue-on-error: true
- run: "for F in screens_*.tar; do tar xvf $F; done || true"
- run: nix-shell --run "poetry run python -m tests.ui_tests.reporting master-diff TT TR"
- - run: mv tests/ui_tests/reports/master_diff .
+ - run: |
+ mv tests/ui_tests/reports/master_diff .
+ if [ "${{ job.status }}" = "success" ]; then
+ cp core/assets/check24.png $OUTDIR/status.png
+ else
+ cp core/assets/x24.png $OUTDIR/status.png
+ fi
- name: Upload diff from main branch
run: |
aws s3 sync master_diff s3://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}
diff --git a/.github/workflows/legacy.yml b/.github/workflows/legacy.yml
index d836e862b25..cf720e58622 100644
--- a/.github/workflows/legacy.yml
+++ b/.github/workflows/legacy.yml
@@ -11,7 +11,7 @@ permissions:
env:
PULL_COMMENT: |
- |legacy UI changes|[device test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-legacy_device_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-legacy_device_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/)([screens](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/master_diff.html))|
+ |legacy UI changes|[device test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-legacy_device_test/index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-legacy_device_test/differing_screens.html)) [main](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/)([screens](https://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}/master_diff.html))|
|-----------------|-----|
jobs:
@@ -97,6 +97,7 @@ jobs:
- uses: ./.github/actions/ui-report
with:
model: T1B1
+ status: ${{ job.status }}
continue-on-error: true
if: ${{ always() && matrix.coins == 'universal' }}
- uses: ./.github/actions/ui-comment
@@ -167,7 +168,13 @@ jobs:
continue-on-error: true
- run: "for F in screens_*.tar; do tar xvf $F; done || true"
- run: nix-shell --run "poetry run python -m tests.ui_tests.reporting master-diff T1"
- - run: mv tests/ui_tests/reports/master_diff .
+ - run: |
+ mv tests/ui_tests/reports/master_diff .
+ if [ "${{ job.status }}" = "success" ]; then
+ cp core/assets/check24.png $OUTDIR/status.png
+ else
+ cp core/assets/x24.png $OUTDIR/status.png
+ fi
- name: Upload main branch diff
run: |
aws s3 sync master_diff s3://data.trezor.io/dev/firmware/master_diff/${{ github.run_id }}
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index a5802b91c92..8569f2d4fbf 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -12365,7 +12365,7 @@
"TT_en_bitcoin-test_authorize_coinjoin.py::test_wrong_account_type": "4ec28178d68afd83019583d2f70dfc1a66a42f946a801d6a9d210ecb7d700951",
"TT_en_bitcoin-test_authorize_coinjoin.py::test_wrong_coordinator": "4ec28178d68afd83019583d2f70dfc1a66a42f946a801d6a9d210ecb7d700951",
"TT_en_bitcoin-test_bcash.py::test_attack_change_input": "5a2732a973bf39bb25bd06180cfdfbc7fe494015c07df9461d15e189851b811d",
-"TT_en_bitcoin-test_bcash.py::test_send_bch_change": "5a2732a973bf39bb25bd06180cfdfbc7fe494015c07df9461d15e189851b811d",
+"TT_en_bitcoin-test_bcash.py::test_send_bch_change": "5a2732a973bf39bb25bd06180cfdfbc7fe494015c07df9461d15e189851b811a",
"TT_en_bitcoin-test_bcash.py::test_send_bch_external_presigned": "0ebad19508c4746198a6728449e4ac0d1cfdf169db907e4ff1acf1ef7f37a400",
"TT_en_bitcoin-test_bcash.py::test_send_bch_multisig_change": "4e9225e760a416bdef0b2eb1ac07489a7fc216b6a682f4edfd0a99dc7a0364c3",
"TT_en_bitcoin-test_bcash.py::test_send_bch_multisig_wrongchange": "3350934f73adc12375536ecc125f42631d0f17f37d5a72c3a6a1a062e9e9e565",