1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-29 19:08:12 +00:00
Commit Graph

313 Commits

Author SHA1 Message Date
Pavol Rusnak
acb01916db ci(nix): update nixpkgs, use latest stable rust (1.53.0) 2021-07-14 17:34:12 +02:00
Martin Milata
f67544d27a ci: run more tests on hardware
- bitcoin tests on regular builds in addition to altcoins
- tests that need SD card
2021-07-12 19:54:51 +02:00
Pavol Rusnak
8ed7bdbc27 chore(ci): update alpine-linux to 3.14.0 and nix to 2.3.14 2021-07-09 11:39:24 +02:00
vdovhanych
6b3e743373 ci: add duration timestamps on all test jobs 2021-06-09 10:00:24 +02:00
Martin Milata
f9d4be268e ci: increase timeout for hardware T1 regular test 2021-06-04 13:10:51 +02:00
Martin Milata
07c53452f6 ci: improve changelog check
- ignore master branch
- treat secfix/ same as release/ branches
- allow skiping check with [no changelog] in commit message
2021-06-04 13:10:51 +02:00
Martin Milata
f771dc6f60 ci(nix): switch to stable rust in shell.nix
Switch to https://github.com/oxalica/rust-overlay for rustc binaries.

Drop x86_64-unknown-linux-gnu from target list as host is included by
default.
2021-05-21 13:42:10 +02:00
Pavol Rusnak
709d9e0dcd
fix(ci): update to latest nixpkgs-unstable 2021-05-07 17:11:58 +02:00
matejcik
1e0a23c133 fix(core/paths): make sure containers are copied along with the numbers they contain 2021-05-06 13:14:21 +02:00
matejcik
791ac56f2f ci: increase hardware test timeouts 2021-05-06 13:14:21 +02:00
matejcik
28978640b3 ci: simplify HW test definitions 2021-05-06 13:14:21 +02:00
matejcik
bb96cdc4e6 ci: include monero logs in artifacts 2021-05-06 13:14:21 +02:00
Jan Pochyla
6257584951 feat(core): Add Rust bindings to MicroPython and trezorhal
core: Remove dangling module decls

core: Use new Cargo feature resolver, use external MacOS debug info

core: Rust docs improvements

core: Upgrade bindgen

core: Add test target to Rust

ci: build rust sources

build(core): .ARM.exidx.text.__aeabi_ui2f in t1 firmware size

It's an unwind table for softfloat function inserted by rustc, probably
can be removed to save 8 bytes:
599c58db70/link.x.in (L175-L182)

scons: Remove dead code

core: Move Rust target to build/rust

core: Replace extern with a FFI version

core: Add some explanatory Rust comments

core: Use correct path for the Rust lib

core: Remove Buffer::as_mut()

Mutable buffer access needs MP_BUFFER_WRITE flag. TBD in the Protobuf PR.

core: Improve docs for micropython::Buffer

core: Minor Rust docs changes

core: Rewrite trezor_obj_get_ll_checked

core: Fix incorrect doc comment

core: Remove cc from deps

fixup! core: Rewrite trezor_obj_get_ll_checked

core: update safety comments
2021-05-05 16:00:21 +02:00
Martin Milata
f58c1634c6 docs(core): use towncrier for generating CHANGELOG.md 2021-05-04 14:18:01 +02:00
Martin Milata
88cdb72aec ci: bump nixpkgs version to latest 2021-04-06 22:06:12 +02:00
Martin Milata
8e00904a3f ci: unified shell.nix for hardware tests 2021-04-06 22:06:12 +02:00
Martin Milata
720eaa3abd ci: run monero tests on hardware 2021-04-06 22:06:12 +02:00
Martin Milata
17324a01a3 ci: more reboots and skipped cases for hardware tests 2021-02-20 21:55:36 +01:00
Martin Milata
99a858a774 ci: hw: skip sd_card tests on TT 2021-02-20 21:55:36 +01:00
Martin Milata
3213557f72 ci: check model before flashing 2021-02-20 21:55:36 +01:00
Martin Milata
17494b2276 ci: reboot more often during hardware regular test 2021-02-20 21:55:36 +01:00
Tomas Susanka
8955d04b5e ci: add fixup check to Github Actions 2021-02-19 19:54:41 +01:00
Martin Milata
11ac8ef19d ci: also build bootloader_ci 2021-02-15 20:55:54 +01:00
Tomas Susanka
6214156c35 fix(ci): strip commit version for emulator releases
trezor-user-env can't work with that
2021-02-11 08:25:25 +01:00
Pavol Rusnak
32c37aa9cd
fix(ci): copy nixpkgs.nix to container 2021-02-09 16:47:11 +01:00
Martin Milata
c000a803e4 ci: deterministic order for hw tt btconly testcases
It seems some test permutations result in FirmwareError likely caused by
OOM.
2021-02-08 08:46:50 +01:00
Martin Milata
2ecd4eeac2 ci: wait longer for T1 bootup 2021-02-06 16:02:42 +01:00
Martin Milata
6050412ed4 docs: hardware CI test jobs 2021-02-06 11:56:23 +01:00
Martin Milata
73c600d3f5 ci: also run regular tt tests on hw
Break off hardware test tasks into separate file.
2021-02-05 12:58:21 +01:00
Martin Milata
55474bdadd ci: use custom uhubctl package
Simply bumping the nixpkgs unstable version causes python test to fail:
https://gitlab.com/satoshilabs/trezor/trezor-firmware/-/jobs/1008507521

Until that's resolved we can stay on the current nixpkgs version and use
our own copy of the uhubctl nix expression.
2021-02-05 12:58:21 +01:00
Martin Milata
4d5e6e360f ci: change usb location/ports 2021-02-05 12:58:21 +01:00
Martin Milata
c7b021e59e ci: hardware: wipe tt before flashing 2021-02-05 12:58:21 +01:00
Martin Milata
ceccf1951a ci: all hw configuration in one place 2021-02-05 12:58:21 +01:00
Martin Milata
4adbb4e8e1 ci: use same pinned nixpkgs for hardware tests 2021-02-05 12:58:21 +01:00
Martin Milata
41bf9201b5 ci: do not rely on TREZOR_PATH, use switch ports instead
As the connected Trezors can be left in various weird states, trezorctl
list may not always return what is expected or even fail. If it failed
TREZOR_PATH was set to empty string which means random device got
selected.

For now let's avoid using incorrect device by powering down the other
usb port.

Fix log lines ordering.
2021-02-05 12:58:21 +01:00
Martin Milata
ed481b5dde ci: hw tests: tweak wait times 2021-02-05 12:58:21 +01:00
Martin Milata
0a75e02392 ci: skip some tests that cause alloc failure
Also increase PYTEST_TIMEOUT so that test_lots_of_inputs has enough time
to pass.
2021-02-05 12:58:21 +01:00
Martin Milata
dedca1bb13 ci: ffmpeg tweaks in hardware tests
Running ffmpeg in a subshell and killing it in exit trap handler should
ensure video availability even when bootstrap or pytest fail.
2021-02-05 12:58:21 +01:00
Tomas Susanka
708a85a916 ci: run btconly firmware on TT in HW tests 2021-02-05 12:58:21 +01:00
Tomas Susanka
61531fbd4a ci: introduce hardware tests for TT 2021-02-05 12:58:21 +01:00
Pavol Rusnak
250f09245b
ci: drop experimental --platform argument from docker 2021-01-22 16:55:27 +01:00
Pavol Rusnak
1f5d8b89d7
nix: stdenv.lib -> lib
[skip_ci]
2021-01-19 17:01:47 +01:00
Tomas Susanka
677465eecd ci: update Monero test binary to latest 0.17.1.9 2021-01-13 18:12:13 +01:00
Pavol Rusnak
453df567d3 ci: various fixes and updates
- fix Nix build on macOS Big Sur (by updating to nixpkgs-unstable)
- update gcc-arm-embedded from 9.x to 10.x
- update nix to 2.3.10
- update Alpine Linux to 3.12.3
- allow to change arch in Docker
2021-01-04 14:40:16 +01:00
Pavol Rusnak
b9c0b597bc nix: bump stable nixos-20.09 to latest 2020-12-17 14:32:20 +01:00
Martin Milata
a0fccca041 ci(core): increase PYTEST_TIMEOUT for memory profiling
test_lots_of_inputs times out, still less than 1200 needed on actual
hardware
2020-12-08 18:07:50 +01:00
matejcik
faa57e29db build(core): include generated resources.py in repo 2020-11-20 18:55:35 +01:00
Pavol Rusnak
50fdd183c2
ci: enable editorconfig checks, fix whitespace issues 2020-11-11 14:43:50 +01:00
Pavol Rusnak
473fb1a3a6
ci: enable yaml checks 2020-11-11 14:23:28 +01:00
Tomas Susanka
09a8d4229e feat(ci): introduce yamllint 2020-11-10 10:27:47 +01:00
Tomas Susanka
1f90a13372 ci: change [NO MASTER] to [RELEASE ONLY] in release check
To make it the same as in Suite.
2020-11-05 19:11:10 +01:00
Tomas Susanka
859aa23752 ci: remove 'changes' from prebuild 2020-11-05 18:55:10 +01:00
Tomas Susanka
cc3d86f0dd ci: skip submodules download where applicable 2020-11-05 18:54:56 +01:00
Martin Milata
c89a8b7bd5 ci(core): add memory profiler job 2020-11-02 14:14:00 +01:00
Tomas Susanka
fd90bb9d10 ci: remove darwin emulator deploy
We'll use trezor user env for that.
2020-10-30 11:28:46 +01:00
Tomas Susanka
dfd93b6759 ci: distinguish between t1 and tt on firmware corp server 2020-10-30 11:28:01 +01:00
Martin Milata
9ed25a718a ci: handle full dependencies in shell.nix
Handling of full dependencies (multiple python versions, Monero tests)
was moved from Dockerfile to shell.nix.

The Python packages are installed from the pinned nixpkgs revision and
do not depend on channel state at the time of docker build anymore.

The Monero test binary is now downloaded using fetchurl which fails the
build if checksum doesn't match.
2020-10-15 15:59:20 +02:00
Tomas Susanka
6cb601509b ci: skip macos build for now 2020-10-12 17:11:52 +02:00
Tomas Susanka
2101ff8904 ci: also remove docker pull from environment, it is not needed 2020-10-12 09:08:05 +02:00
Pavol Rusnak
2fcc34c301
ci: another try with the environment 2020-10-11 22:15:45 +02:00
Pavol Rusnak
940400998a
ci(dockerfile): fix other python versions 2020-10-11 15:30:50 +02:00
Pavol Rusnak
6cc1d70f2e
ci(dockerfile): fix python versions 2020-10-08 15:24:12 +02:00
Tomas Susanka
3a8e46467a ci: fix firmware versions in deploy jobs
We do not run before_script because we run `nix-shell` and `poetry install`
there. The deploy takes about ~5s without nix-shell and peotry and ~5m with
both so it is worth it.
2020-10-07 22:13:57 +02:00
Pavol Rusnak
2e4d67165f
ci(nix): update nixpkgs to latest nixos-20.09 stable 2020-10-07 16:30:50 +02:00
Pavol Rusnak
4fdb62c2e2 chore(python): replace pipenv with poetry 2020-10-07 16:21:00 +02:00
Pavol Rusnak
98ea241e97
ci: use alternative list syntax for needs 2020-10-06 21:59:22 +02:00
Tomas Susanka
99e0faafb6 test(core): print fixtures suggestion after the test 2020-10-06 21:17:28 +02:00
Tomas Susanka
225966ea7c ci: fix date epoch in shell.nix not in Gitlab yml file
This way we fix also local environments for devs with NixOS.
Updates 988c7f65af.
2020-09-30 09:29:43 +02:00
matejcik
1f5c08c9a2 ci: add .gitlab-ci.yml as explicit trigger whenever ci/** is a trigger 2020-09-29 11:30:40 +02:00
matejcik
e4785d47e0 style: apply black 20.8b1 2020-09-29 11:30:40 +02:00
Tomas Susanka
5edd0a55f3 ci: document arduino pins 2020-09-01 13:51:32 +02:00
Tomas Susanka
c7b6d98cfc tests/upgrade-tests: modify paths in release jobs and add job for MacOS 2020-08-27 21:04:22 +02:00
Tomas Susanka
c52c93aea0 ci: add core btconly debug build and deploy it during release 2020-08-26 16:24:43 +02:00
Tomas Susanka
00593dc6d6 ci: fix builds for MacOS
Drop .app bundling and use a simpler approach. A simple .command bash
script is present that launches the binary.
2020-08-26 13:58:31 +02:00
Tomas Susanka
db020c7a47 ci: run HW tests for secfix branches 2020-08-24 13:30:57 +02:00
Tomas Susanka
141d9099f5 ci: remove release candidates deploy
It is not being used at the moment anyway.
2020-08-24 13:28:41 +02:00
Martin Milata
71c5bc4e3b ci: fail if coverage falls under threshold 2020-08-18 21:08:46 +02:00
Tomas Susanka
13c11e756e ci: replace 'dependends' with 'needs'
https://docs.gitlab.com/ee/ci/yaml/#needs
2020-08-18 16:55:31 +02:00
Pavol Rusnak
c3892b75bd
ci: test python on Pipfile.lock/poetry.lock 2020-08-08 19:19:15 +02:00
Pavol Rusnak
e0ee8266ec
poetry: add pyproject.toml + lock file 2020-08-08 18:25:29 +02:00
Tomas Susanka
01ac2ec48d ci: run release commit message check only on one Gitlab 2020-08-06 00:04:25 +02:00
Tomas Susanka
fa39948683 ci: fix release commit check 2020-08-05 22:53:09 +02:00
Pavol Rusnak
ac9047a438
ci/build: fix typo in "core fw btconly t1 build" 2020-08-04 17:36:39 +02:00
Tomas Susanka
fb583cf0fa ci: fix release commit message check 2020-08-04 13:46:28 +02:00
Pavol Rusnak
efc5ccdaf0
core: remove src1 2020-08-03 15:59:57 +02:00
Pavol Rusnak
063aba910d core: rename emulator to trezor-emu-core 2020-07-30 15:27:34 +02:00
Pavol Rusnak
f71958b63f
ci: build T1 firmware 2020-07-28 12:18:44 +02:00
Tomas Susanka
698b632acb ci: add btconly debug build and run hardware tests for it 2020-07-15 18:07:21 +02:00
Pavol Rusnak
8d94b13d3a
ci/test: fix coverage by moving the files to correct subdir 2020-07-06 19:52:18 +02:00
Tomas Susanka
e6889245e8 ci: set core/legacy version in .gitlab.yml 2020-07-06 19:07:00 +02:00
Tomas Susanka
040b4a1ee7 ci: fix VERSION export from version.h 2020-07-05 21:47:36 +02:00
Pavol Rusnak
82c0c40367
ci: make nix-shell available on darwin in before_script 2020-07-03 21:52:47 +02:00
Pavol Rusnak
25a2e690fe
ci/test: set C.UTF-8 locale for Python tests 2020-07-03 18:02:46 +02:00
Tomas Susanka
2b4de8e270
ci: use nix docker image 2020-07-03 17:33:59 +02:00
Pavol Rusnak
8f6a6c098e
ci/Dockerfile: use nix-shell instead of nix-env 2020-07-03 17:33:59 +02:00
Pavol Rusnak
09a212dca0
nix: use the latest snapshot of nixos-unstable 2020-07-03 17:33:10 +02:00
Pavol Rusnak
6d1e97884c
nix: add procps and wget 2020-07-03 14:48:55 +02:00
Pavol Rusnak
937336e6b6
nix: add bash, use openssl instead of libressl 2020-07-03 12:44:13 +02:00
Pavol Rusnak
6c09c61978
nix: unify ci/shell.nix and shell.nix 2020-07-03 12:32:55 +02:00
Tomas Susanka
0c734dc8fd ci: remove shell hook
Fixes darwin job.
2020-07-03 09:46:44 +02:00
Tomas Susanka
6ebb388905 ci: add debug firmwares to releases 2020-06-19 19:34:31 +00:00
Tomas Susanka
39f5b065d3 tests/hardware: add sleep to update_firmware and always publish artifacts 2020-06-12 06:04:47 +00:00
Pavol Rusnak
74450ee4bb docker: rename container name to trezor-firmware-build.nix 2020-06-07 17:08:25 +02:00
Pavol Rusnak
2930251eeb docker: don't use nixos/nix as base, use alpine from scratch 2020-06-07 17:08:25 +02:00
Pavol Rusnak
1d68c9b386 ci: use NixOS in Docker 2020-06-07 17:08:25 +02:00
Tomas Susanka
5440f1db27 ci: fix release legacy btconly deploy 2020-06-03 15:13:50 +00:00
Pavol Rusnak
ae2d5813f0
ci/Dockerfile: set PIPENV_CACHE_DIR 2020-06-01 23:39:17 +02:00
Pavol Rusnak
86e20d07bd
ci/Dockerfile: update trezor_monero_tests binary 2020-05-13 11:13:19 +02:00
Tomas Susanka
742b23e382 ci/fido2: check if another emu is not running 2020-05-06 14:36:11 +00:00
Tomas Susanka
05aabc64bb docs: document CI jobs 2020-05-04 08:51:57 +02:00
Tomas Susanka
503bbb0eb3 ci: add check for release branches
If release branch, CI now checks that all commits are either
cherry-picked from master (using `-x` option) or contain [NO MASTER].
2020-04-24 16:49:29 +00:00
Tomas Susanka
1634baa1e5 ci: remove 'only changes' 2020-04-20 20:14:24 +02:00
Tomas Susanka
24fff39314 ci: add tpmb 2020-04-16 18:13:11 +02:00
Tomas Susanka
1be5e577ee ci: move report files 'mv' to after_script
Otherwise it does not get moved to the right place if the test suite
fails.
2020-04-16 16:09:18 +00:00
Tomas Susanka
f82e28ee6f ci: fix upgrade tests deploy when commit has two tags 2020-04-16 14:43:19 +00:00
Tomas Susanka
6901cb7cdf ci: simplify regular expressions for release and tags 2020-04-10 11:23:07 +02:00
Tomas Susanka
2b031990f8 ci: run hardware tests nightly and for releases 2020-04-10 11:23:07 +02:00
Marek Mahut
4264e87319 ci: add hardware tests for T1
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.
2020-04-10 11:23:07 +02:00
Tomas Susanka
17392f94b8 ci: set artifacts' name using the job name and commit hash 2020-04-07 10:42:45 +02:00
Tomas Susanka
30a267c83d ci: check if commit message contains fixup on travis 2020-03-06 18:45:46 +00:00
Tomas Susanka
e3b674a42e ci: move ui reports to the root to simplify artifacts browsing
I wanted to use a symlink but that does not seem to work on GitLab https://gitlab.com/gitlab-org/gitlab-runner/issues/4241.
2020-03-04 14:37:39 +01:00
Tomas Susanka
89929c7a8c tests/ui: create report what differs from master 2020-03-04 13:41:32 +01:00
Tomas Susanka
c418e628ac ci: omit unix/emu label in test jobs 2020-02-24 11:47:06 +00:00
matejcik
8c75c94125 ci: ensure system Python 3.7 is used even if other pythons are available 2020-02-11 11:53:34 +01:00
matejcik
37ab510622 ci: remove sleeps for coverage, restore Monero
with the new emulator runner, this should be more stable

This reverts commit 1480f5a25c.
2020-02-11 11:19:56 +01:00
Tomas Susanka
8a499b3067 ci: run coverage only for core 2020-02-10 16:12:46 +00:00
Tomas Susanka
f4c38af825 ci: use 'extends' instead of yaml anchors
We might refactor the ci folder a bit more using this but I believe it
is fine for now.

Should solve #835.
2020-02-10 16:12:46 +00:00
Tomas Susanka
1480f5a25c ci: remove coverage from monero test
It fails randomly and we do not use it at the moment anyway.
2020-02-06 12:37:30 +00:00
Tomas Susanka
30684bc46b tests/ui: fix deploy script 2020-01-31 13:38:32 +00:00
Tomas Susanka
e9c5e47ab4 ci: add Pipfile.lock to 'only_changes' 2020-01-29 09:09:32 +00:00
matejcik
04fe99af8e ci: turn mypy check into a part of style-check 2020-01-28 16:32:28 +01:00
matejcik
06909aef7d ci: no dependencies for python test 2020-01-28 16:24:58 +01:00
matejcik
34332cc294 ci: do not store resources for frozen builds 2020-01-23 18:43:20 +01:00
matejcik
e2f71a1acc ci: use frozen debug builds for emulator tests 2020-01-23 18:43:20 +01:00
matejcik
6cf48bf485 ci: use explicit trezor.log location 2020-01-23 18:43:20 +01:00
matejcik
32b269ad43 ci: fix path for core-bitcoinonly test 2020-01-23 18:43:20 +01:00
Pavol Rusnak
9a884a5dc5
ci/tests: disable test_LongEcho in HIDTest, remove retry 2020-01-23 12:26:43 +00:00
Tomas Susanka
7c41b40dff
tests: introduce UI tests for core with diffs (#784)
tests: introduce UI tests for core with diffs
2020-01-10 20:39:31 +01:00
Milan Rossa
33b7e378c2
core/ci: add coverage target, introduce posttest stage 2020-01-09 15:26:40 +01:00
Tomas Susanka
1103a14c48 tests/ui: move reports and add index.html 2020-01-09 14:25:45 +00:00
Tomas Susanka
96ec85686e tests/ui: success html file 2020-01-07 14:43:23 +00:00
Tomas Susanka
68425fbb8c ci: add junit to ui tests 2020-01-07 12:38:12 +00:00
Tomas Susanka
362dbce606 ci: rename tmp folder to ui_test_records 2020-01-06 14:59:12 +00:00
Tomas Susanka
56257eb6a5 tests/ui: code review fixes 2020-01-06 14:44:30 +00:00
Tomas Susanka
fe690a6b6b tests/ui: embed images as base64 to diff.html 2020-01-03 15:07:46 +00:00
Tomas Susanka
3dfbe7aa98 ci: upload ui tests fixtures 2020-01-03 15:07:46 +00:00
Tomas Susanka
51ef963738 tests: introduce UI tests for core 2020-01-03 14:28:27 +00:00
Tomas Susanka
bc0c10bf3e ci: always upload test.yml artifacts
To have the emulator log and junit always available.
2020-01-03 14:26:21 +00:00
Tomas Susanka
a28f29708f ci: add junit for a nice tests overview 2020-01-03 12:44:12 +00:00
Tomas Susanka
b6e2c2d14b ci/tests: add core emulator logs as artifacts 2019-12-09 12:17:12 +00:00