What changed, and why it matters
This commit only reorganizes how automated unit tests are run in the project's GitHub CI pipeline. It removes the inline unit-test job from one workflow file and replaces it with a call to a shared Ledger reusable workflow. No application code, cryptographic logic, or user-facing behavior was changed. There is no security-relevant change visible in the diff.
No security action required. Treat as routine CI maintenance. If desired, verify that the reusable workflow LedgerHQ/ledger-app-workflows/.github/workflows/reusable_unit_tests.yml@v1 preserves equivalent test execution, coverage reporting, and documentation generation behavior.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies two GitHub Actions workflow files. In ci-workflow.yml, the local job_unit_test job (which built unit tests, ran them, generated lcov coverage, uploaded to codecov.io, and generated Doxygen docs) is deleted. A new file unit_tests.yml is added that triggers on workflow_dispatch, push to develop/master, and pull_request, and calls LedgerHQ/ledger-app-workflows/.github/workflows/reusable_unit_tests.yml@v1 with secrets: inherit and test_directory: unit-tests. This is a CI refactoring to use a standardized reusable workflow.
Changed components
.github/workflows/ci-workflow.yml.github/workflows/unit_tests.ymlInspect captured patch +17 / −47
diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml
index 69c82cf..6dbdbb2 100644
--- a/.github/workflows/ci-workflow.yml
+++ b/.github/workflows/ci-workflow.yml
@@ -79,53 +79,6 @@ jobs:
name: bitcoin-testnet-perftest-app-nanosp
path: bin
- job_unit_test:
- name: Unit test
- needs: job_build
- 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 unit tests
- run: |
- cd unit-tests/
- cmake -Bbuild -H. && make -C build && 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
- uses: codecov/codecov-action@v3
- with:
- token: ${{ secrets.CODECOV_TOKEN }}
- files: ./unit-tests/coverage.info
- flags: unittests
- name: codecov-app-bitcoin
- fail_ci_if_error: true
- verbose: true
-
- - name: HTML documentation
- run: doxygen .doxygen/Doxyfile
-
- - uses: actions/upload-artifact@v4
- with:
- name: documentation
- path: doc/html
-
job_test_mainnet:
name: Tests on mainnet
strategy:
diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml
new file mode 100644
index 0000000..d10e78a
--- /dev/null
+++ b/.github/workflows/unit_tests.yml
@@ -0,0 +1,17 @@
+name: Unit testing with Codecov coverage checking
+
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - develop
+ - master
+ pull_request:
+
+jobs:
+ job_unit_test:
+ name: Call Ledger unit_test
+ uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_unit_tests.yml@v1
+ secrets: inherit
+ with:
+ test_directory: unit-tests
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.