mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-19 05:58:09 +00:00
4264e87319
This enables to run device tests against an actual device connected to our CI. It uses https://github.com/mmahut/tpmb to enter bootloader and then it uploads a debug firmware to the device. The debug mode is the used to "click" the buttons but we might improve this and actually use the hardware buttons instead.
344 lines
7.2 KiB
YAML
344 lines
7.2 KiB
YAML
image: registry.gitlab.com/satoshilabs/trezor/trezor-firmware/environment
|
|
|
|
# Core
|
|
|
|
core unit test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix regular build
|
|
script:
|
|
- cd core
|
|
- pipenv run make test
|
|
|
|
core device ui test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_ui
|
|
- cd ..
|
|
- mv tests/ui_tests/reporting/reports/test/ test_ui_report
|
|
- pipenv run python ci/prepare_ui_artifacts.py
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- ci/ui_test_records/
|
|
- test_ui_report
|
|
- tests/ui_tests/screens/
|
|
- tests/junit.xml
|
|
- tests/trezor.log
|
|
when: always
|
|
expire_in: 1 week
|
|
reports:
|
|
junit: tests/junit.xml
|
|
|
|
core device test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu
|
|
- mv ./src/.coverage .coverage.test_emu
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/trezor.log
|
|
- tests/junit.xml
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
when: always
|
|
reports:
|
|
junit: tests/junit.xml
|
|
|
|
core btconly device test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen btconly debug build
|
|
variables:
|
|
MICROPYTHON: "build/unix/micropython-bitcoinonly"
|
|
TREZOR_PYTEST_SKIP_ALTCOINS: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/trezor.log
|
|
- tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
reports:
|
|
junit: tests/junit.xml
|
|
|
|
core monero test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_monero
|
|
- mv ./src/.coverage .coverage.test_emu_monero
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/trezor.log
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core u2f test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- make -C tests/fido_tests/u2f-tests-hid
|
|
- cd core
|
|
- pipenv run make test_emu_u2f
|
|
- mv ./src/.coverage .coverage.test_emu_u2f
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/trezor.log
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core fido2 test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_fido2
|
|
- mv ./src/.coverage .coverage.test_emu_fido2
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/trezor.log
|
|
- tests/junit.xml
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
reports:
|
|
junit: tests/junit.xml
|
|
when: always
|
|
|
|
core click test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_click
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/trezor.log
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core upgrade test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
variables:
|
|
TREZOR_UPGRADE_TEST: "core"
|
|
script:
|
|
- tests/download_emulators.sh
|
|
- pipenv run pytest --junitxml=tests/junit.xml tests/upgrade_tests
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core persistence test:
|
|
stage: test
|
|
extends: .core_job
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
script:
|
|
- pipenv run pytest --junitxml=tests/junit.xml tests/persistence_tests
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
# Crypto
|
|
|
|
crypto test:
|
|
stage: test
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- crypto/**/*
|
|
dependencies:
|
|
- crypto build
|
|
script:
|
|
- cd crypto
|
|
- ./tests/aestst
|
|
- ./tests/test_check
|
|
- ./tests/test_openssl 1000
|
|
- ITERS=10 pipenv run pytest --junitxml=tests/junit.xml tests
|
|
- CK_TIMEOUT_MULTIPLIER=20 valgrind -q --error-exitcode=1 ./tests/test_check
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
# Legacy
|
|
|
|
legacy test:
|
|
stage: test
|
|
extends: .legacy_job
|
|
dependencies:
|
|
- legacy emu regular build
|
|
variables:
|
|
EMULATOR: "1"
|
|
script:
|
|
- cd legacy
|
|
- pipenv run script/test
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
legacy btconly test:
|
|
stage: test
|
|
extends: .legacy_job
|
|
dependencies:
|
|
- legacy emu btconly build
|
|
variables:
|
|
EMULATOR: "1"
|
|
EMULATOR_BINARY: "firmware/trezor-bitcoinonly.elf"
|
|
TREZOR_PYTEST_SKIP_ALTCOINS: 1
|
|
script:
|
|
- cd legacy
|
|
- pipenv run script/test
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
legacy upgrade test:
|
|
stage: test
|
|
extends: .legacy_job
|
|
dependencies:
|
|
- legacy emu regular build
|
|
variables:
|
|
TREZOR_UPGRADE_TEST: "legacy"
|
|
script:
|
|
- tests/download_emulators.sh
|
|
- pipenv run pytest --junitxml=tests/junit.xml tests/upgrade_tests
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
# Python
|
|
|
|
python test:
|
|
stage: test
|
|
dependencies: []
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- common/**/*
|
|
- python/**/*
|
|
script:
|
|
- cd python
|
|
- pipenv run tox
|
|
|
|
|
|
# Storage
|
|
|
|
storage test:
|
|
stage: test
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- storage/**/*
|
|
dependencies: []
|
|
script:
|
|
- cd storage/tests
|
|
- pipenv run make build
|
|
- pipenv run make tests_all
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
# Hardware
|
|
hardware legacy device test:
|
|
stage: test
|
|
extends: .legacy_job
|
|
tags:
|
|
- tpmb
|
|
dependencies:
|
|
- legacy fw debug build
|
|
script:
|
|
- cd ci/hardware_tests
|
|
- nix-shell --run "./record_video.sh ${CI_COMMIT_SHORT_SHA} start"
|
|
- nix-shell --run "cd ../.. && pipenv sync"
|
|
- nix-shell --run "pipenv run python bootstrap.py"
|
|
- nix-shell --run "pipenv run python bootstrap.py ../../trezor-*.bin"
|
|
- nix-shell --run "pipenv run pytest ../../tests/device_tests"
|
|
- nix-shell --run "./record_video.sh ${CI_COMMIT_SHORT_SHA} stop"
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
paths:
|
|
- ci/hardware_tests/video*.mp4
|
|
expire_in: 2 days
|