1919 LANGUAGE : ' C.UTF-8'
2020
2121jobs :
22- type-check :
23- name : Type check
24- runs-on : ubuntu-latest
25- container : python:3.12
26- steps :
27- - uses : actions/checkout@v4
28-
29- - run : |
30- pip install poetry
31- poetry install
32-
33- - name : Run check
34- run : >
35- poetry run
36- mypy
37- hwi.py
38- hwilib/_base58.py
39- hwilib/_bech32.py
40- hwilib/_cli.py
41- hwilib/commands.py
42- hwilib/common.py
43- hwilib/descriptor.py
44- hwilib/devices/bitbox02.py
45- hwilib/devices/coldcard.py
46- hwilib/devices/digitalbitbox.py
47- hwilib/devices/jade.py
48- hwilib/devices/__init__.py
49- hwilib/devices/keepkey.py
50- hwilib/devices/ledger.py
51- hwilib/devices/trezor.py
52- hwilib/errors.py
53- hwilib/_script.py
54- hwilib/_serialize.py
55- hwilib/tx.py
56- hwilib/hwwclient.py
57- hwilib/__init__.py
58- hwilib/key.py
59- hwilib/udevinstaller.py
60-
6122 non-device-tests :
6223 name : Non-device tests
6324 runs-on : ubuntu-latest
@@ -142,126 +103,80 @@ jobs:
142103 name : dist
143104 path : dist/
144105
106+ prepare-sim-matrices :
107+ name : Prepare sim matrices
108+ uses : ./.github/workflows/prepare-sim-matrices.yml
109+
145110 sim-builder-trezor :
146111 name : Trezor sim builder
147- # Ubuntu 22.04 ships with glibc 2.35, which is needed to keep Trezor 1
148- # binaries compatible with Debian Bookworm (glibc 2.36) Python containers.
149- # Trezor T binaries don't need this.
150- runs-on : ubuntu-22.04
151-
152- strategy :
153- fail-fast : false
154- matrix :
155- device :
156- - { name: 'trezor-1', archive: 'trezor-firmware', paths: 'test/work/trezor-firmware' }
157- - { name: 'trezor-t', archive: 'trezor-firmware', paths: 'test/work/trezor-firmware' }
158-
159- steps :
160- - uses : actions/checkout@v4
161- - uses : ./.github/actions/build-sim
112+ needs : prepare-sim-matrices
113+ uses : ./.github/workflows/sim-builder.yml
114+ with :
115+ sim : trezor
116+ include : ${{ needs.prepare-sim-matrices.outputs.trezor }}
117+ # Ubuntu 22.04 ships with glibc 2.35, which is needed to keep Trezor 1
118+ # binaries compatible with Debian Bookworm (glibc 2.36) Python containers.
119+ # Trezor T binaries don't need this.
120+ runs-on : ubuntu-22.04
162121
163122 sim-builder-coldcard :
164123 name : Coldcard sim builder
165- runs-on : ubuntu-22.04
166-
167- strategy :
168- fail-fast : false
169- matrix :
170- device :
171- - { name: 'coldcard', archive: 'coldcard-mpy', paths: 'test/work/firmware/external/micropython/ports/unix/coldcard-mpy test/work/firmware/unix/coldcard-mpy test/work/firmware/unix/l-mpy test/work/firmware/unix/l-port' }
172-
173- steps :
174- - uses : actions/checkout@v4
175- - uses : ./.github/actions/build-sim
124+ needs : prepare-sim-matrices
125+ uses : ./.github/workflows/sim-builder.yml
126+ with :
127+ sim : coldcard
128+ include : ${{ needs.prepare-sim-matrices.outputs.coldcard }}
129+ runs-on : ubuntu-22.04
176130
177131 sim-builder-bitbox :
178132 name : Bitbox sim builder
179- runs-on : ubuntu-latest
180-
181- strategy :
182- fail-fast : false
183- matrix :
184- device :
185- - { name: 'bitbox01', archive: 'mcu', paths: 'test/work/mcu' }
186- - { name: 'bitbox02', archive: 'bitbox02', paths: 'test/work/bitbox02-firmware/build-build-noasan/bin/simulator' }
187-
188- steps :
189- - uses : actions/checkout@v4
190- - uses : ./.github/actions/build-sim
133+ needs : prepare-sim-matrices
134+ uses : ./.github/workflows/sim-builder.yml
135+ with :
136+ sim : bitbox
137+ include : ${{ needs.prepare-sim-matrices.outputs.bitbox }}
138+ runs-on : ubuntu-latest
191139
192140 sim-builder-jade :
193141 name : Jade sim builder
194- runs-on : ubuntu-latest
195-
196- strategy :
197- fail-fast : false
198- matrix :
199- device :
200- - { name: 'jade', archive: 'jade', paths: 'test/work/jade/simulator' }
201-
202- steps :
203- - uses : actions/checkout@v4
204- - uses : ./.github/actions/build-sim
142+ needs : prepare-sim-matrices
143+ uses : ./.github/workflows/sim-builder.yml
144+ with :
145+ sim : jade
146+ include : ${{ needs.prepare-sim-matrices.outputs.jade }}
147+ runs-on : ubuntu-latest
205148
206149 sim-builder-ledger :
207150 name : Ledger sim builder
208- runs-on : ubuntu-latest
209-
210- strategy :
211- fail-fast : false
212- matrix :
213- device :
214- - { name: 'ledger', archive: 'speculos', paths: 'test/work/speculos' }
215-
216- steps :
217- - uses : actions/checkout@v4
218- - uses : ./.github/actions/build-sim
151+ needs : prepare-sim-matrices
152+ uses : ./.github/workflows/sim-builder.yml
153+ with :
154+ sim : ledger
155+ include : ${{ needs.prepare-sim-matrices.outputs.ledger }}
156+ runs-on : ubuntu-latest
219157
220158 sim-builder-keepkey :
221159 name : Keepkey sim builder
222- runs-on : ubuntu-22.04
223-
224- strategy :
225- fail-fast : false
226- matrix :
227- device :
228- - { name: 'keepkey', archive: 'keepkey-firmware', paths: 'test/work/keepkey-firmware/bin' }
229-
230- steps :
231- - uses : actions/checkout@v4
232- - uses : ./.github/actions/build-sim
233-
160+ needs : prepare-sim-matrices
161+ uses : ./.github/workflows/sim-builder.yml
162+ with :
163+ sim : keepkey
164+ include : ${{ needs.prepare-sim-matrices.outputs.keepkey }}
165+ runs-on : ubuntu-22.04
234166
235167 ledger-s-app-builder :
236168 name : Ledger Nano S Bitcoin App builder
237- runs-on : ubuntu-latest
238- container : ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest
239- steps :
240- - run : |
241- git clone https://github.com/LedgerHQ/app-bitcoin-new.git
242- cd app-bitcoin-new
243- make DEBUG=1
244-
245- - uses : actions/upload-artifact@v4
246- with :
247- name : ledger_app_nano_s
248- path : app-bitcoin-new/bin/app.elf
249-
169+ uses : ./.github/workflows/ledger-app-builder.yml
170+ with :
171+ app : nano_s
172+ runs-on : ubuntu-latest
250173
251174 ledger-x-app-builder :
252175 name : Ledger Nano X Bitcoin App builder
253- runs-on : ubuntu-latest
254- container : ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest
255- steps :
256- - run : |
257- git clone https://github.com/LedgerHQ/app-bitcoin-new.git
258- cd app-bitcoin-new
259- make DEBUG=1 BOLOS_SDK=$NANOX_SDK
260-
261- - uses : actions/upload-artifact@v4
262- with :
263- name : ledger_app_nano_x
264- path : app-bitcoin-new/bin/app.elf
176+ uses : ./.github/workflows/ledger-app-builder.yml
177+ with :
178+ app : nano_x
179+ runs-on : ubuntu-latest
265180
266181 bitcoind-builder :
267182 name : bitcoind builder
@@ -272,11 +187,18 @@ jobs:
272187 - uses : actions/checkout@v4
273188 - uses : ./.github/actions/build-bitcoind
274189
275- test-trezor :
190+ test-trezor-1 :
191+ uses : ./.github/workflows/device-test.yml
192+ needs : [sim-builder-trezor, bitcoind-builder, dist-builder]
193+ with :
194+ device : trezor-1
195+ runs-on : ubuntu-latest
196+
197+ test-trezor-t :
276198 uses : ./.github/workflows/device-test.yml
277199 needs : [sim-builder-trezor, bitcoind-builder, dist-builder]
278200 with :
279- device : trezor
201+ device : trezor-t
280202 runs-on : ubuntu-latest
281203
282204 test-ledger-s :
0 commit comments