test tenki runners #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Legacy | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '35 22 * * *' # every day @ 22:35 | |
| push: | |
| branches: | |
| - 'release/**' | |
| # cancel any previous runs on the same PR | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write # for fetching the OIDC token | |
| contents: read # for actions/checkout | |
| pull-requests: write # For dflook comments on PR | |
| env: | |
| SDL_VIDEODRIVER: dummy | |
| # See https://yaml-multiline.info/ | |
| PULL_COMMENT: > | |
| |legacy UI changes|device test| | |
| |-----------------|-----------| | |
| |T1B1 Model 1 | |
| |<img src="https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-en-legacy_device_test-status.png" width="20px" height="20px" /> | |
| [test](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-en-legacy_device_test-index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-en-legacy_device_test-differing_screens.html)) | |
| [main](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-en-legacy_device_test-master_index.html)([screens](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/T1B1-en-legacy_device_test-master_diff.html)) | |
| | | |
| jobs: | |
| legacy_firmware: | |
| name: Firmware | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| coins: [universal, btconly] | |
| type: [normal, debuglink] | |
| env: | |
| BITCOIN_ONLY: ${{ matrix.coins == 'universal' && '0' || '1' }} | |
| DEBUG_LINK: ${{ matrix.type == 'debuglink' && '1' || '0' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: ./.github/actions/environment | |
| - run: nix-shell --run "export PRODUCTION=1 && uv run legacy/script/cibuild" | |
| - run: nix-shell --run "uv run legacy/script/setup" | |
| - run: nix-shell --run "export PRODUCTION=0 && uv run legacy/script/cibuild" | |
| - run: nix-shell --run "uv run make -C legacy/demo" | |
| if: matrix.coins == 'universal' && matrix.type == 'normal' | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: legacy-firmware-${{ matrix.coins }}-${{ matrix.type }} | |
| path: legacy/firmware/firmware-*.bin | |
| retention-days: 7 | |
| legacy_emu: | |
| name: Emulator | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| coins: [universal, btconly] | |
| # type: [normal, debuglink] | |
| type: [debuglink] | |
| arch: [x86_64] | |
| asan: ${{ fromJSON(github.event_name == 'schedule' && '["noasan", "asan"]' || '["noasan"]') }} | |
| env: | |
| EMULATOR: 1 | |
| BITCOIN_ONLY: ${{ matrix.coins == 'universal' && '0' || '1' }} | |
| DEBUG_LINK: ${{ matrix.type == 'debuglink' && '1' || '0' }} | |
| ADDRESS_SANITIZER: ${{ matrix.asan == 'asan' && '1' || '0' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: ./.github/actions/environment | |
| - run: nix-shell --run "uv run legacy/script/cibuild" | |
| - run: cp legacy/firmware/trezor.elf legacy/firmware/trezor-emu-legacy-T1B1-${{ matrix.coins }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: legacy-emu-${{ matrix.coins }}-${{ matrix.type }}-${{ matrix.asan }} | |
| path: | | |
| legacy/firmware/*.elf | |
| legacy/firmware/trezor-emu-legacy* | |
| retention-days: 7 | |
| legacy_emu_arm: | |
| if: github.event_name == 'schedule' | |
| name: Emulator arm | |
| runs-on: ubuntu-latest-arm64 | |
| strategy: | |
| matrix: | |
| coins: [universal] | |
| type: [debuglink] | |
| asan: ${{ fromJSON(github.event_name == 'schedule' && '["noasan", "asan"]' || '["noasan"]') }} | |
| env: | |
| EMULATOR: 1 | |
| BITCOIN_ONLY: ${{ matrix.coins == 'universal' && '0' || '1' }} | |
| DEBUG_LINK: ${{ matrix.type == 'debuglink' && '1' || '0' }} | |
| ADDRESS_SANITIZER: ${{ matrix.asan == 'asan' && '1' || '0' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: ./.github/actions/environment | |
| - run: nix-shell --run "uv run legacy/script/cibuild" | |
| - run: mv legacy/firmware/trezor.elf legacy/firmware/trezor-emu-arm-legacy-T1B1-${{ matrix.coins }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: legacy-emu-arm-${{ matrix.coins }}-${{ matrix.type }}-${{ matrix.asan }} | |
| path: | | |
| legacy/firmware/trezor-emu-arm-legacy* | |
| retention-days: 7 | |
| legacy_device_test: | |
| name: Device test | |
| runs-on: ubuntu-latest | |
| needs: legacy_emu | |
| timeout-minutes: 20 | |
| strategy: | |
| matrix: | |
| coins: [universal, btconly] | |
| asan: ${{ fromJSON(github.event_name == 'schedule' && '["noasan", "asan"]' || '["noasan"]') }} | |
| env: | |
| EMULATOR: 1 | |
| PYTEST_TIMEOUT: 120 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: legacy-emu-${{ matrix.coins }}-debuglink-${{ matrix.asan }} | |
| path: legacy/firmware | |
| - run: chmod +x legacy/firmware/*.elf | |
| - uses: ./.github/actions/environment | |
| - run: nix-shell --run "uv run make -C legacy test_emu_ui" | |
| if: matrix.coins == 'universal' | |
| - run: nix-shell --run "uv run make -C legacy test_emu" | |
| if: matrix.coins != 'universal' | |
| - uses: ./.github/actions/ui-report | |
| with: | |
| model: T1B1 | |
| lang: en | |
| status: ${{ job.status }} | |
| continue-on-error: true | |
| if: ${{ always() && matrix.coins == 'universal' }} | |
| - run: echo "${{ env.PULL_COMMENT }}" >> $GITHUB_STEP_SUMMARY | |
| if: ${{ always() && matrix.coins == 'universal' }} | |
| legacy_upgrade_test: | |
| name: Upgrade test | |
| runs-on: ubuntu-latest | |
| needs: legacy_emu | |
| timeout-minutes: 10 | |
| strategy: | |
| matrix: | |
| asan: ${{ fromJSON(github.event_name == 'schedule' && '["noasan", "asan"]' || '["noasan"]') }} | |
| env: | |
| TREZOR_UPGRADE_TEST: legacy | |
| PYTEST_TIMEOUT: 120 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: legacy-emu-universal-debuglink-${{ matrix.asan }} | |
| path: legacy/firmware | |
| - run: chmod +x legacy/firmware/*.elf | |
| - uses: ./.github/actions/environment | |
| - run: nix-shell --run "tests/download_emulators.sh" | |
| - run: nix-shell --run "uv run pytest tests/upgrade_tests" | |
| legacy_hwi_test: | |
| name: HWI test | |
| if: false # XXX currently failing | |
| continue-on-error: true | |
| runs-on: ubuntu-latest | |
| needs: legacy_emu | |
| env: | |
| EMULATOR: 1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: legacy-emu-universal-debuglink-noasan | |
| path: legacy/firmware | |
| - run: chmod +x legacy/firmware/*.elf | |
| - uses: ./.github/actions/environment | |
| - run: nix-shell --run "git clone --depth=1 https://github.com/bitcoin-core/HWI.git" | |
| - run: nix-shell --arg fullDeps true --run "cd HWI && poetry install && poetry run ./test/test_trezor.py --model_1 ../legacy/firmware/trezor.elf bitcoind" | |
| legacy_upload_emu: | |
| name: Upload emulator binaries | |
| if: github.event_name == 'schedule' | |
| runs-on: ubuntu-latest | |
| needs: | |
| - legacy_emu | |
| - legacy_emu_arm | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| pattern: legacy-emu*debuglink-noasan | |
| merge-multiple: true | |
| - name: Configure aws credentials | |
| uses: aws-actions/configure-aws-credentials@v4 | |
| with: | |
| role-to-assume: arn:aws:iam::538326561891:role/gh_actions_deploy_dev_firmware_data | |
| aws-region: eu-west-1 | |
| continue-on-error: true | |
| - run: | | |
| mkdir emulators | |
| cp trezor-emu-* emulators | |
| aws s3 sync --only-show-errors emulators s3://data.trezor.io/dev/firmware/emu-nightly |