image: registry.gitlab.com/satoshilabs/trezor/trezor-firmware/trezor-firmware-env.nix # Hardware # 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 and the rest is divided into several groups with device reboots in # between them. # 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" TESTS_SKIP: "-k 'not 15_of_15 and not test_multisig_mismatch_inputs and not test_sign_tx and not signtx_bgold and not test_opreturn'" 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 ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_[a-r]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_signtx_a*.py ../../tests/device_tests/test_msg_signtx_b[a-c]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_signtx_b[d-z]*py ../../tests/device_tests/test_msg_signtx_[c-k]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_signtx_[l-z]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_sign[^t]*.py ../../tests/device_tests/test_msg_s[^i]*.py ../../tests/device_tests/test_msg_[t-z]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_[^m]*.py ../../tests/device_tests/test_m[^s]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_[a-l]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_[n-z]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_m[^s]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_[a-r]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_signt*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_sign[^t]*.py ../../tests/device_tests/test_msg_s[^i]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not altcoin and not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_[t-z]*.py" timeout: 4h artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" expire_in: 2 days when: always 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" TESTS_SKIP: "-k 'not 15_of_15 and not test_multisig_mismatch_inputs and not test_sign_tx'" 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 ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_[a-r]*.py ../../tests/device_tests/test_msg_[t-z]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not sd_card' $TESTS_SKIP ../../tests/device_tests/test_m[^s]*.py ../../tests/device_tests/test_[^m]*.py" - nix-shell --run "poetry run python bootstrap.py tt ../../trezor-*.bin" - nix-shell --run "poetry run pytest --random-order-bucket=none -x -m 'not sd_card' $TESTS_SKIP ../../tests/device_tests/test_msg_s*.py" timeout: 3h 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 ../../trezor-*.bin" - nix-shell --arg fullDeps true --run "cd ../../core/tests && ./run_tests_device_emu_monero.sh $TESTOPTS" timeout: 35m artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" expire_in: 2 days when: always 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" artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - ci/hardware_tests/*.mp4 expire_in: 2 days when: always 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" artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - ci/hardware_tests/*.mp4 expire_in: 2 days when: always