Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
6149775
Adjust bitcoind location
Sjors Jul 22, 2025
07b3ae7
ci: bump docker/build-push-action to v6
Sjors Jul 22, 2025
a8515e5
Drop Python 3.8
Sjors Jul 22, 2025
5b155a2
build: bump debian to bookworm
Sjors Jul 22, 2025
2d57e3e
ci: .github match 'on' from Bitcoin Core
Sjors Jul 22, 2025
7c45091
ci: fix rust emulator build failure
Sjors Jul 22, 2025
825c733
jade setup_environment: update qemu installation
Mar 21, 2025
0d1d567
ci: abort if bitcoind fails to start
Sjors Jul 22, 2025
d39401a
ci: abort if simulator fails to start
Sjors Jul 23, 2025
45ac44e
Set 60 second timeout on proc.communicate
Sjors Jul 23, 2025
2834096
ci: build bitcoind with Ubuntu 22.04
Sjors Jul 22, 2025
c55b704
coldcard: drop address patch
Sjors Jul 23, 2025
8967f69
coldcard: update multisig patch
Sjors Jul 23, 2025
b3fe9af
coldcard: install pysdl2-dll
Sjors Jul 23, 2025
b37adf4
coldcard: use --headless
Sjors Jul 23, 2025
32c662e
coldcard: disable test_signtx
Sjors Jul 24, 2025
cf63e82
ledger: add missing flask-cors
Sjors Jul 23, 2025
c0b268b
ledger: add missing ledgerd
Sjors Jul 23, 2025
2bb0f85
ledger: disable several tests for NanoX
Sjors Jul 24, 2025
62b4c7e
Revert "ci: Always run test"
Sjors Jul 22, 2025
48125cc
ci: split device groups
Sjors Jul 22, 2025
77dd0f5
ci: downgrade Keepkey sim builder to Ubuntu 22.04
Sjors Jul 23, 2025
9387fe1
ci: downgrade Coinkite sim builder and tests to Ubuntu 22.04
Sjors Jul 23, 2025
e963f62
ci: downgrade Trezor sim builder to Ubuntu 22.04
Sjors Jul 23, 2025
5d26fed
ledger: use NanoX
Sjors Jul 23, 2025
baf16ca
ci: pin non-device jobs to Python 3.12
Sjors Aug 29, 2025
1401ee1
support BitBox02 Nova by updating bitbox02 lib to v7.0.0
benma Jul 17, 2025
fadcc17
bitbox02: fix path to simulator
benma Aug 29, 2025
0e3b796
ci: temporarily add libcmocka0 for bitbox02
Sjors Aug 29, 2025
085b106
ci: combine dist and test jobs
Sjors Aug 29, 2025
cb97b5b
ci: use Device Test Template
Sjors Aug 29, 2025
ca80b22
ci: move type check and simbuilds to own file
Sjors Aug 29, 2025
6cb6054
ci: clone coldcard repo only once
Sjors Aug 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/build-bitcoind/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ runs:
ccache --zero-stats
cd test; ./setup_environment.sh --bitcoind; cd ..
ccache --show-stats --verbose
tar -czf bitcoind.tar.gz test/work/bitcoin/build/src/bitcoind
tar -czf bitcoind.tar.gz test/work/bitcoin/build/bin/bitcoind
- uses: actions/cache/save@v4
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
Expand Down
28 changes: 28 additions & 0 deletions .github/actions/build-sim/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Build sim
description: Build device simulator(s)
runs:
using: composite
steps:
- name: Install dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y gcc-arm-linux-gnueabihf libsdl2-image-dev libslirp-dev libpcsclite-dev ninja-build
pip install poetry
wget https://github.com/protocolbuffers/protobuf/releases/download/v22.0/protoc-22.0-linux-x86_64.zip
sudo unzip protoc-22.0-linux-x86_64.zip -d /usr/local
protoc --version

- name: Build simulator
shell: bash
run: |
git config --global user.email "ci@ci.com"
git config --global user.name "ci"
cd test; ./setup_environment.sh --${{ matrix.device.name }}; cd ..
tar -czf ${{ matrix.device.archive }}.tar.gz ${{ matrix.device.paths }}

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.device.name }}-sim
path: ${{ matrix.device.archive }}.tar.gz

9 changes: 6 additions & 3 deletions .github/actions/install-sim/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ runs:
pushd test/work/firmware; git am ../../data/coldcard-multisig.patch; popd
poetry run pip install -r test/work/firmware/requirements.txt
pip install -r test/work/firmware/requirements.txt
poetry run pip install pysdl2-dll
pip install pysdl2-dll

- if: inputs.device == 'bitbox01'
shell: bash
Expand Down Expand Up @@ -58,13 +60,14 @@ runs:
apt-get update
apt-get install -y libusb-1.0-0 qemu-user-static
tar -xvf speculos.tar.gz
poetry run pip install construct flask-restful jsonschema mnemonic pyelftools pillow requests pytesseract
pip install construct flask-restful jsonschema mnemonic pyelftools pillow requests pytesseract
poetry run pip install construct flask-cors flask-restful jsonschema ledgered mnemonic pyelftools pillow requests pytesseract
pip install construct flask-cors flask-restful jsonschema ledgered mnemonic pyelftools pillow requests pytesseract

- if: inputs.device == 'ledger'
uses: actions/download-artifact@v4
with:
name: ledger_app
name: ${{ inputs.device == 'ledger-legacy' && 'ledger_app_nano_s' || 'ledger_app_nano_x' }}


- if: inputs.device == 'ledger'
shell: bash
Expand Down
31 changes: 31 additions & 0 deletions .github/actions/test-device/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Test device
description: Run tests for one device type.
runs:
using: composite
steps:
- shell: bash
run: |
pip install poetry
poetry install

- uses: actions/download-artifact@v4
with:
name: bitcoind

- shell: bash
run: |
tar -xvf bitcoind.tar.gz

- uses: ./.github/actions/install-sim
with:
device: ${{ matrix.device }}

- name: Run tests
shell: bash
run: |
cd test; poetry run ./run_tests.py --${{ matrix.device }} --interface=${{ matrix.test.interface }} --device-only; cd ..

- if: failure()
shell: bash
run: |
tail -v -n +1 test/*.std*
67 changes: 67 additions & 0 deletions .github/actions/test-dist/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Test dist
description: Run dist tests for one device type.
runs:
using: composite
steps:
- shell: bash
run: |
pip install poetry

- uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Install (Wheel)
if: matrix.test.script == 'Wheel'
shell: bash
run: |
pip install dist/*.whl

- name: Install (Sdist)
if: matrix.test.script == 'Sdist'
shell: bash
run: |
pip install $(find dist -name "*.tar.gz" -a -not -name "*linux*")

- name: Install (Bindist)
if: matrix.test.script == 'Bindist'
shell: bash
run: |
poetry install; cd dist; tar -xvf hwi*linux*.tar.gz; cd ..

- uses: actions/download-artifact@v4
with:
name: bitcoind

- shell: bash
run: |
tar -xvf bitcoind.tar.gz

- uses: ./.github/actions/install-sim
with:
device: ${{ matrix.device }}

- name: Run tests (Wheel)
if: matrix.test.script == 'Wheel'
shell: bash
run: |
cd test; ./run_tests.py $DEVICE --interface=cli --device-only; cd ..

- name: Run tests (Sdist)
if: matrix.test.script == 'Sdist'
shell: bash
run: |
cd test; ./run_tests.py $DEVICE --interface=cli --device-only; cd ..

- name: Run tests (Bindist)
if: matrix.test.script == 'Bindist'
shell: bash
run: |
cd test; poetry run ./run_tests.py $DEVICE --interface=bindist --device-only; cd ..

- if: failure()
shell: bash
run: |
tail -v -n +1 test/*.std*

22 changes: 22 additions & 0 deletions .github/sim-build-map.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"trezor": [
{ "name": "trezor-1", "archive": "trezor-firmware", "paths": "test/work/trezor-firmware" },
{ "name": "trezor-t", "archive": "trezor-firmware", "paths": "test/work/trezor-firmware" }
],
"coldcard": [
{ "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" }
],
"bitbox": [
{ "name": "bitbox01", "archive": "mcu", "paths": "test/work/mcu" },
{ "name": "bitbox02", "archive": "bitbox02", "paths": "test/work/bitbox02-firmware/build-build-noasan/bin/simulator" }
],
"jade": [
{ "name": "jade", "archive": "jade", "paths": "test/work/jade/simulator" }
],
"ledger": [
{ "name": "ledger", "archive": "speculos", "paths": "test/work/speculos" }
],
"keepkey": [
{ "name": "keepkey", "archive": "keepkey-firmware", "paths": "test/work/keepkey-firmware/bin" }
]
}
Loading
Loading