mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-18 13:38:12 +00:00
160 lines
4.3 KiB
YAML
160 lines
4.3 KiB
YAML
image: registry.gitlab.com/satoshilabs/trezor/trezor-firmware/trezor-firmware-env.nix
|
|
|
|
# Caching
|
|
.gitlab_caching: &gitlab_caching
|
|
cache:
|
|
key: "$CI_COMMIT_REF_SLUG"
|
|
paths:
|
|
- .venv/
|
|
|
|
# Hardware
|
|
|
|
# [Device tests](../tests/device-tests.md) that run against an actual physical Trezor T.
|
|
# The device needs to have special bootloader, found in `core/embed/bootloader_ci`, that
|
|
# makes it possible to flash firmware without confirmation on the touchscreen.
|
|
#
|
|
# All hardware tests are run nightly on the `master` branch, as well as on push to branches
|
|
# with whitelisted prefix. If you want hardware tests ran on your branch, make sure its
|
|
# name starts with `hw/`.
|
|
#
|
|
# Currently it's not possible to run all regular TT tests without getting into
|
|
# a state where the micropython heap is too fragmented and allocations fail
|
|
# (often manifesting as a stuck test case). For that reason some tests are
|
|
# skipped.
|
|
# See also: https://github.com/trezor/trezor-firmware/issues/1371
|
|
hardware core regular device test:
|
|
stage: test
|
|
only:
|
|
- schedules # nightly build
|
|
- /^legacy\//
|
|
- /^release\//
|
|
- /^secfix\//
|
|
- /^hw\//
|
|
tags:
|
|
- tpmb
|
|
needs:
|
|
- core fw regular debug build
|
|
variables:
|
|
PYTEST_TIMEOUT: "1200"
|
|
script:
|
|
- cd ci/hardware_tests
|
|
- set -a
|
|
- source hardware.cfg
|
|
- set +a
|
|
- nix-shell --run "cd ../.. && poetry install"
|
|
- nix-shell --run "poetry run python bootstrap.py tt ../../firmware-T2*.bin | ts -s"
|
|
- nix-shell --run "poetry run pytest ../../tests/device_tests | ts -s"
|
|
timeout: 6h
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
expire_in: 2 days
|
|
when: always
|
|
|
|
# Also device tests on physical Trezor T but with Bitcoin-only firmware.
|
|
hardware core btconly device test:
|
|
stage: test
|
|
only:
|
|
- schedules # nightly build
|
|
- /^legacy\//
|
|
- /^release\//
|
|
- /^secfix\//
|
|
- /^hw\//
|
|
tags:
|
|
- tpmb
|
|
needs:
|
|
- core fw btconly debug build
|
|
variables:
|
|
TREZOR_PYTEST_SKIP_ALTCOINS: 1
|
|
PYTEST_TIMEOUT: "1200"
|
|
script:
|
|
- cd ci/hardware_tests
|
|
- set -a
|
|
- source hardware.cfg
|
|
- set +a
|
|
- nix-shell --run "cd ../.. && poetry install"
|
|
- nix-shell --run "poetry run python bootstrap.py tt ../../firmware-T2*.bin | ts -s"
|
|
- nix-shell --run "poetry run pytest ../../tests/device_tests | ts -s"
|
|
timeout: 4h
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
expire_in: 2 days
|
|
when: always
|
|
|
|
hardware core monero test:
|
|
stage: test
|
|
only:
|
|
- schedules # nightly build
|
|
- /^release\//
|
|
- /^secfix\//
|
|
- /^hw\//
|
|
tags:
|
|
- tpmb
|
|
needs:
|
|
- core fw regular debug build
|
|
variables:
|
|
TESTOPTS: --trezor_path webusb
|
|
script:
|
|
- cd ci/hardware_tests
|
|
- set -a
|
|
- source hardware.cfg
|
|
- set +a
|
|
- nix-shell --run "cd ../.. && poetry install"
|
|
- nix-shell --run "poetry run python bootstrap.py tt ../../firmware-T2*.bin | ts -s"
|
|
- nix-shell --arg fullDeps true --run "cd ../../core/tests && ./run_tests_device_emu_monero.sh $TESTOPTS | ts -s"
|
|
timeout: 1h
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
expire_in: 2 days
|
|
when: always
|
|
|
|
# [Device tests](../tests/device-tests.md) executed on physical Trezor 1.
|
|
# This works thanks to [tpmb](https://github.com/mmahut/tpmb), which is a small arduino
|
|
# device capable of pushing an actual buttons on the device.
|
|
hardware legacy regular device test:
|
|
stage: test
|
|
only:
|
|
- schedules # nightly build
|
|
- /^legacy\//
|
|
- /^release\//
|
|
- /^secfix\//
|
|
- /^hw\//
|
|
tags:
|
|
- tpmb
|
|
needs:
|
|
- legacy fw regular debug build
|
|
script:
|
|
- cd ci/hardware_tests
|
|
- nix-shell --run "./t1_hw_test.sh | ts -s"
|
|
timeout: 1h10m
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- ci/hardware_tests/*.mp4
|
|
expire_in: 2 days
|
|
when: always
|
|
|
|
# Also device tests on physical Trezor 1 but with Bitcoin-only firmware.
|
|
hardware legacy btconly device test:
|
|
stage: test
|
|
variables:
|
|
TREZOR_PYTEST_SKIP_ALTCOINS: 1
|
|
only:
|
|
- schedules # nightly build
|
|
- /^legacy\//
|
|
- /^release\//
|
|
- /^secfix\//
|
|
- /^hw\//
|
|
tags:
|
|
- tpmb
|
|
needs:
|
|
- legacy fw btconly debug build
|
|
script:
|
|
- cd ci/hardware_tests
|
|
- nix-shell --run "./t1_hw_test.sh | ts -s"
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- ci/hardware_tests/*.mp4
|
|
expire_in: 2 days
|
|
when: always
|