Skip to content

CI

CI #15

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop
jobs:
job_build:
name: Compilation for X, S+, Stax and Flex
strategy:
matrix:
include:
- model: nanox
SDK: "$NANOX_SDK"
- model: nanosp
SDK: "$NANOSP_SDK"
- model: stax
SDK: "$STAX_SDK"
- model: flex
SDK: "$FLEX_SDK"
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Build
run: |
make DEBUG=0 COIN=bitcoin BOLOS_SDK=${{ matrix.SDK }} && mv bin/ bitcoin-bin/
make clean
make DEBUG=0 COIN=bitcoin_testnet BOLOS_SDK=${{ matrix.SDK }} && mv bin/ bitcoin-testnet-bin/
- name: Upload Bitcoin app binary
uses: actions/upload-artifact@v4
with:
name: bitcoin-app-${{ matrix.model }}
path: bitcoin-bin
- name: Upload Bitcoin Testnet app binary
uses: actions/upload-artifact@v4
with:
name: bitcoin-testnet-app-${{ matrix.model }}
path: bitcoin-testnet-bin
job_build_app_perftest:
name: Compile the UX-less version of the app on Nano S+ for performance tests
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Build
run: |
make DEBUG=0 COIN=bitcoin_testnet BOLOS_SDK="$NANOSP_SDK" AUTOAPPROVE_FOR_PERF_TESTS=1
- name: Upload Bitcoin Testnet app binary
uses: actions/upload-artifact@v4
with:
name: bitcoin-testnet-perftest-app-nanosp
path: bin
job_test_python_lib_legacyapp:
name: Tests with the Python library and legacy Bitcoin app
needs: job_build
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/speculos:latest
ports:
- 1234:1234
- 9999:9999
- 40000:40000
- 41000:41000
- 42000:42000
- 43000:43000
options: --entrypoint /bin/bash
steps:
- name: Clone
uses: actions/checkout@v4
- name: Install build dependencies
run: apt update && apt install -y build-essential
- name: Run tests
run: |
pip install -r requirements.txt
cd bitcoin_client/tests
PYTHONPATH=$PYTHONPATH:/speculos pytest --headless --timeout=300 --model=nanos