Skip to content

Commit 570bfdf

Browse files
SjorsClaude
andcommitted
ci: use Device Test Template
Co-authored-by: Claude <[email protected]>
1 parent cd6a27b commit 570bfdf

File tree

2 files changed

+96
-186
lines changed

2 files changed

+96
-186
lines changed

.github/workflows/ci.yml

Lines changed: 49 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -273,196 +273,59 @@ jobs:
273273
- uses: ./.github/actions/build-bitcoind
274274

275275
test-trezor:
276-
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
277-
runs-on: ubuntu-latest
278-
needs: [ sim-builder-trezor, bitcoind-builder, dist-builder ]
279-
timeout-minutes: 45
280-
281-
strategy:
282-
fail-fast: false
283-
matrix:
284-
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
285-
device:
286-
- 'trezor-1'
287-
- 'trezor-t'
288-
test:
289-
- {interface: 'library'}
290-
- {interface: 'cli'}
291-
- {interface: 'stdin'}
292-
- {script: 'Wheel'}
293-
- {script: 'Sdist'}
294-
- {script: 'Bindist'}
295-
296-
container: python:${{ matrix.python-version }}
297-
298-
steps:
299-
- uses: actions/checkout@v4
300-
- name: run test
301-
if: ${{ matrix.test.interface }}
302-
uses: ./.github/actions/test-device
303-
- name: run dist test
304-
if: ${{ matrix.test.script }}
305-
uses: ./.github/actions/test-dist
306-
307-
test-ledger:
308-
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
309-
runs-on: ubuntu-latest
310-
needs: [ sim-builder-ledger, ledger-s-app-builder, ledger-x-app-builder, bitcoind-builder ]
311-
timeout-minutes: 45
312-
313-
strategy:
314-
fail-fast: false
315-
matrix:
316-
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
317-
device:
318-
- 'ledger'
319-
- 'ledger-legacy'
320-
test:
321-
- {interface: 'library'}
322-
- {interface: 'cli'}
323-
- {interface: 'stdin'}
324-
- {script: 'Wheel'}
325-
- {script: 'Sdist'}
326-
- {script: 'Bindist'}
327-
328-
container: python:${{ matrix.python-version }}
329-
330-
steps:
331-
- uses: actions/checkout@v4
332-
- name: run test
333-
if: ${{ matrix.test.interface }}
334-
uses: ./.github/actions/test-device
335-
- name: run dist test
336-
if: ${{ matrix.test.script }}
337-
uses: ./.github/actions/test-dist
276+
uses: ./.github/workflows/device-test.yml
277+
needs: [sim-builder-trezor, bitcoind-builder, dist-builder]
278+
with:
279+
device: trezor
280+
runs-on: ubuntu-latest
281+
282+
test-ledger-s:
283+
uses: ./.github/workflows/device-test.yml
284+
needs: [sim-builder-ledger, ledger-s-app-builder, bitcoind-builder, dist-builder]
285+
with:
286+
device: ledger-legacy
287+
runs-on: ubuntu-latest
288+
289+
test-ledger-x:
290+
uses: ./.github/workflows/device-test.yml
291+
needs: [sim-builder-ledger, ledger-x-app-builder, bitcoind-builder, dist-builder]
292+
with:
293+
device: ledger
294+
runs-on: ubuntu-latest
338295

339296
test-coldcard:
340-
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
341-
runs-on: ubuntu-22.04
342-
needs: [ sim-builder-coldcard, bitcoind-builder ]
343-
timeout-minutes: 45
344-
345-
strategy:
346-
fail-fast: false
347-
matrix:
348-
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
349-
device:
350-
- 'coldcard'
351-
test:
352-
- {interface: 'library'}
353-
- {interface: 'cli'}
354-
- {interface: 'stdin'}
355-
- {script: 'Wheel'}
356-
- {script: 'Sdist'}
357-
- {script: 'Bindist'}
358-
359-
container: python:${{ matrix.python-version }}
360-
361-
steps:
362-
- uses: actions/checkout@v4
363-
- name: run test
364-
if: ${{ matrix.test.interface }}
365-
uses: ./.github/actions/test-device
366-
- name: run dist test
367-
if: ${{ matrix.test.script }}
368-
uses: ./.github/actions/test-dist
369-
370-
test-bitbox:
371-
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
372-
runs-on: ubuntu-latest
373-
needs: [ sim-builder-bitbox, bitcoind-builder ]
374-
timeout-minutes: 45
375-
376-
strategy:
377-
fail-fast: false
378-
matrix:
379-
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
380-
device:
381-
- 'bitbox01'
382-
- 'bitbox02'
383-
test:
384-
- {interface: 'library'}
385-
- {interface: 'cli'}
386-
- {interface: 'stdin'}
387-
- {script: 'Wheel'}
388-
- {script: 'Sdist'}
389-
- {script: 'Bindist'}
390-
391-
container: python:${{ matrix.python-version }}
392-
393-
steps:
394-
# Tempoary fix for bitbox02:
395-
- name: Install libcmocka runtime
396-
run: |
397-
apt-get update
398-
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libcmocka-dev
399-
- uses: actions/checkout@v4
400-
- name: run test
401-
if: ${{ matrix.test.interface }}
402-
uses: ./.github/actions/test-device
403-
- name: run dist test
404-
if: ${{ matrix.test.script }}
405-
uses: ./.github/actions/test-dist
297+
uses: ./.github/workflows/device-test.yml
298+
needs: [sim-builder-coldcard, bitcoind-builder, dist-builder]
299+
with:
300+
device: coldcard
301+
runs-on: ubuntu-22.04
302+
303+
test-bitbox01:
304+
uses: ./.github/workflows/device-test.yml
305+
needs: [sim-builder-bitbox, bitcoind-builder, dist-builder]
306+
with:
307+
device: bitbox01
308+
runs-on: ubuntu-latest
309+
310+
test-bitbox02:
311+
uses: ./.github/workflows/device-test.yml
312+
needs: [sim-builder-bitbox, bitcoind-builder, dist-builder]
313+
with:
314+
device: bitbox02
315+
runs-on: ubuntu-latest
316+
apt-packages: libcmocka-dev
406317

407318
test-jade:
408-
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
409-
runs-on: ubuntu-latest
410-
needs: [ sim-builder-jade, bitcoind-builder ]
411-
timeout-minutes: 45
412-
413-
strategy:
414-
fail-fast: false
415-
matrix:
416-
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
417-
device:
418-
- 'jade'
419-
test:
420-
- {interface: 'library'}
421-
- {interface: 'cli'}
422-
- {interface: 'stdin'}
423-
- {script: 'Wheel'}
424-
- {script: 'Sdist'}
425-
- {script: 'Bindist'}
426-
427-
container: python:${{ matrix.python-version }}
428-
429-
steps:
430-
- uses: actions/checkout@v4
431-
- name: run test
432-
if: ${{ matrix.test.interface }}
433-
uses: ./.github/actions/test-device
434-
- name: run dist test
435-
if: ${{ matrix.test.script }}
436-
uses: ./.github/actions/test-dist
319+
uses: ./.github/workflows/device-test.yml
320+
needs: [sim-builder-jade, bitcoind-builder, dist-builder]
321+
with:
322+
device: jade
323+
runs-on: ubuntu-latest
437324

438325
test-keepkey:
439-
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
440-
runs-on: ubuntu-latest
441-
needs: [ sim-builder-keepkey, bitcoind-builder ]
442-
timeout-minutes: 45
443-
444-
strategy:
445-
fail-fast: false
446-
matrix:
447-
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
448-
device:
449-
- 'keepkey'
450-
test:
451-
- {interface: 'library'}
452-
- {interface: 'cli'}
453-
- {interface: 'stdin'}
454-
- {script: 'Wheel'}
455-
- {script: 'Sdist'}
456-
- {script: 'Bindist'}
457-
458-
container: python:${{ matrix.python-version }}
459-
460-
steps:
461-
- uses: actions/checkout@v4
462-
- name: run test
463-
if: ${{ matrix.test.interface }}
464-
uses: ./.github/actions/test-device
465-
- name: run dist test
466-
if: ${{ matrix.test.script }}
467-
uses: ./.github/actions/test-dist
326+
uses: ./.github/workflows/device-test.yml
327+
needs: [sim-builder-keepkey, bitcoind-builder, dist-builder]
328+
with:
329+
device: keepkey
330+
runs-on: ubuntu-latest
468331

.github/workflows/device-test.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Device Test Template
2+
on:
3+
workflow_call:
4+
inputs:
5+
device:
6+
required: true
7+
type: string
8+
runs-on:
9+
required: false
10+
type: string
11+
default: ubuntu-latest
12+
apt-packages:
13+
required: false
14+
type: string
15+
default: ''
16+
17+
jobs:
18+
test-device:
19+
name: Python ${{ matrix.python-version }} ${{ matrix.device }} ${{ matrix.test.script || matrix.test.interface }}
20+
runs-on: ${{ inputs.runs-on }}
21+
timeout-minutes: 45
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
python-version: ['3.9', '3.10', '3.11', '3.12']
26+
device: ${{ inputs.device }}
27+
test:
28+
- {interface: 'library'}
29+
- {interface: 'cli'}
30+
- {interface: 'stdin'}
31+
- {script: 'Wheel'}
32+
- {script: 'Sdist'}
33+
- {script: 'Bindist'}
34+
container: python:${{ matrix.python-version }}
35+
steps:
36+
- name: Install extra APT packages
37+
if: ${{ inputs.apt-packages != '' }}
38+
run: |
39+
apt-get update
40+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ${{ inputs.apt-packages }}
41+
- uses: actions/checkout@v4
42+
- name: run test
43+
if: ${{ matrix.test.interface }}
44+
uses: ./.github/actions/test-device
45+
- name: run dist test
46+
if: ${{ matrix.test.script }}
47+
uses: ./.github/actions/test-dist

0 commit comments

Comments
 (0)