19
19
LANGUAGE : ' C.UTF-8'
20
20
21
21
jobs :
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
-
61
22
non-device-tests :
62
23
name : Non-device tests
63
24
runs-on : ubuntu-latest
@@ -142,126 +103,80 @@ jobs:
142
103
name : dist
143
104
path : dist/
144
105
106
+ prepare-sim-matrices :
107
+ name : Prepare sim matrices
108
+ uses : ./.github/workflows/prepare-sim-matrices.yml
109
+
145
110
sim-builder-trezor :
146
111
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
162
121
163
122
sim-builder-coldcard :
164
123
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
176
130
177
131
sim-builder-bitbox :
178
132
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
191
139
192
140
sim-builder-jade :
193
141
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
205
148
206
149
sim-builder-ledger :
207
150
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
219
157
220
158
sim-builder-keepkey :
221
159
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
234
166
235
167
ledger-s-app-builder :
236
168
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
250
173
251
174
ledger-x-app-builder :
252
175
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
265
180
266
181
bitcoind-builder :
267
182
name : bitcoind builder
@@ -272,11 +187,18 @@ jobs:
272
187
- uses : actions/checkout@v4
273
188
- uses : ./.github/actions/build-bitcoind
274
189
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 :
276
198
uses : ./.github/workflows/device-test.yml
277
199
needs : [sim-builder-trezor, bitcoind-builder, dist-builder]
278
200
with :
279
- device : trezor
201
+ device : trezor-t
280
202
runs-on : ubuntu-latest
281
203
282
204
test-ledger-s :
0 commit comments