Skip to content

fix model id

fix model id #348

Workflow file for this run

name: Compilation & tests
on: [push, pull_request]
jobs:
job_build_application_with_reusable_workflow:
name: Build application using the reusable workflow
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1
with:
upload_app_binaries_artifact: "compiled_app_binaries"
# job_build_nano_debug:
# name: Build application for NanoS+, X, Stax, Flex
# runs-on: ubuntu-latest
# strategy:
# matrix:
# include:
# - SDK: "$NANOX_SDK"
# artifact: ergo-app-debug-nanox
# - SDK: "$NANOSP_SDK"
# artifact: ergo-app-debug-nanosp
# - SDK: "$STAX_SDK"
# artifact: ergo-app-debug-stax
# - SDK: "$FLEX_SDK"
# artifact: ergo-app-debug-flex
# container:
# image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest
# steps:
# - name: Clone
# uses: actions/checkout@v4
# - name: Build
# run: |
# git config --global --add safe.directory "$GITHUB_WORKSPACE"
# make BOLOS_SDK=${{ matrix.SDK }} DEBUG=1
# - name: Upload app binary
# uses: actions/upload-artifact@v4
# with:
# name: ${{ matrix.artifact }}
# path: bin
# job_unit_test:
# name: Unit tests
# runs-on: ubuntu-latest
# container:
# image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest
# steps:
# - name: Clone
# uses: actions/checkout@v4
# - name: Build unit tests
# run: |
# cd unit-tests/
# cmake -Bbuild -H. && make -C build
# - name: Run unit tests
# run: |
# cd unit-tests/
# make -C build test
# - name: Generate code coverage
# run: |
# cd unit-tests/
# lcov --directory . -b "$(realpath build/)" --capture --initial -o coverage.base && \
# lcov --rc lcov_branch_coverage=1 --directory . -b "$(realpath build/)" --capture -o coverage.capture && \
# lcov --directory . -b "$(realpath build/)" --add-tracefile coverage.base --add-tracefile coverage.capture -o coverage.info && \
# lcov --directory . -b "$(realpath build/)" --remove coverage.info '*/unit-tests/*' -o coverage.info && \
# genhtml coverage.info -o coverage
# - uses: actions/upload-artifact@v4
# with:
# name: code-coverage
# path: unit-tests/coverage
# - name: Upload to codecov.io
# if: false
# uses: codecov/codecov-action@v4
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# files: ./unit-tests/coverage.info
# flags: unittests
# name: codecov-app-ergo
# fail_ci_if_error: true
# verbose: true
# job_generate_doc:
# name: Generate project documentation
# runs-on: ubuntu-latest
# container:
# image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest
# steps:
# - name: Clone
# uses: actions/checkout@v4
# - name: HTML documentation
# run: doxygen .doxygen/Doxyfile
# - uses: actions/upload-artifact@v4
# with:
# name: documentation
# path: doc/html
# job_scan_build:
# name: Clang Static Analyzer
# runs-on: ubuntu-latest
# strategy:
# matrix:
# include:
# - SDK: "$NANOSP_SDK"
# - SDK: "$STAX_SDK"
# container:
# image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest
# steps:
# - name: Clone
# uses: actions/checkout@v4
# - name: Build with Clang Static Analyzer
# run: |
# export BOLOS_SDK=${{ matrix.SDK }}
# make clean
# scan-build --use-cc=clang -analyze-headers -enable-checker security -enable-checker unix -enable-checker valist -o scan-build --status-bugs make default
# - name: Upload scan result
# uses: actions/upload-artifact@v4
# if: failure()
# with:
# name: scan-build
# path: scan-build
job_test:
name: Functional Tests
strategy:
matrix:
include:
- model:
id: nanox
dir: nanox
- model:
id: nanosp
dir: nanos2
needs: job_build_application_with_reusable_workflow
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/speculos:latest
ports:
- 5000:5000
- 9999:9999
options: --entrypoint /bin/bash
steps:
- name: Clone
uses: actions/checkout@v4
- name: Download app binary
uses: actions/download-artifact@v4
with:
name: compiled_app_binaries
path: bin
- name: Run test
run: |
apt-get update && apt-get install -qy curl netcat-traditional
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -qy nodejs
export SEED=`cat tests/seed.txt`
nohup bash -c "python /speculos/speculos.py bin/${{ matrix.model.dir }}/bin/app.elf --apdu-port 9999 --api-port 5000 --display headless --model=${{ matrix.model.id }} --seed \"${SEED}\"" > speculos.log 2<&1 &
cd tests && npm install
until `nc -w5 -z -v 127.0.0.1 9999`; do sleep 1; done;
npm --model=${{matrix.model.id}} --port=5000 run test
- name: Upload Speculos log
uses: actions/upload-artifact@v4
with:
name: speculos-${{matrix.model}}-log
path: speculos.log