Merge pull request #458 from LedgerHQ/develop #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
- develop | |
workflow_dispatch: | |
jobs: | |
scan-build: | |
name: Clang Static Analyzer | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build with Clang Static Analyzer | |
run: | | |
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 | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: scan-build | |
path: scan-build | |
# ===================================================== | |
# ZEMU TESTS | |
# ===================================================== | |
building_for_e2e_zemu_tests: | |
name: Building binaries for E2E Zemu tests | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build testing binaries | |
run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
cd tests/zemu/ && ./build_local_test_elfs.sh | |
- name: Upload app binaries | |
uses: actions/upload-artifact@v3 | |
with: | |
name: e2e_zemu_elfs | |
path: ./tests/zemu/elfs/ | |
jobs-e2e-zemu-tests: | |
name: E2E Zemu tests | |
needs: [building_for_e2e_zemu_tests] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Test | |
run: | | |
id | |
echo $HOME | |
echo $DISPLAY | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- run: sudo apt-get update -y && sudo apt-get install -y libusb-1.0.0 libudev-dev | |
- name: Install NodeJS | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
- name: Install yarn | |
run: npm install -g yarn | |
- name: Build/Install build js deps | |
run: cd tests/zemu/ && yarn install | |
- name: Create tmp folder for artifacts | |
run: mkdir tests/zemu/elfs | |
- name: Download app binaries | |
uses: actions/download-artifact@v3 | |
with: | |
path: tmp/ | |
- name: Gather elfs | |
run: cp `find tmp/e2e_zemu_elfs/ -name "*.elf"` tests/zemu/elfs/ | |
- name: Run zemu tests | |
run: cd tests/zemu/ && yarn test | |
# ===================================================== | |
# SPECULOS TESTS | |
# ===================================================== | |
building_for_e2e_speculos_tests: | |
name: Building binaries for E2E Speculos tests | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build testing binaries | |
run: | | |
mkdir tests/speculos/elfs | |
make clean && make -j DEBUG=1 NFT_TESTING_KEY=1 BOLOS_SDK=$NANOS_SDK && mv bin/app.elf tests/speculos/elfs/nanos.elf | |
make clean && make -j DEBUG=1 NFT_TESTING_KEY=1 BOLOS_SDK=$NANOX_SDK && mv bin/app.elf tests/speculos/elfs/nanox.elf | |
make clean && make -j DEBUG=1 NFT_TESTING_KEY=1 BOLOS_SDK=$NANOSP_SDK && mv bin/app.elf tests/speculos/elfs/nanosp.elf | |
- name: Upload app binaries | |
uses: actions/upload-artifact@v3 | |
with: | |
name: e2e_speculos_elfs | |
path: ./tests/speculos/elfs | |
jobs-e2e-speculos-tests: | |
name: Speculos tests | |
strategy: | |
fail-fast: false | |
matrix: | |
model: ["nanosp", "nanos", "nanox"] | |
needs: [building_for_e2e_speculos_tests] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v3 | |
- name: Create tmp folder for artifacts | |
run: mkdir tests/speculos/elfs | |
- name: Download app binaries | |
uses: actions/download-artifact@v3 | |
with: | |
path: tmp/ | |
- name: Gather elfs | |
run: cp `find tmp/e2e_speculos_elfs/ -name "*.elf"` tests/speculos/elfs/ | |
- name: Install dependencies | |
run: | | |
cd tests/speculos | |
sudo apt-get update && sudo apt-get install -y qemu-user-static | |
pip install -r requirements.txt | |
- name: Run speculos tests | |
run: | | |
cd tests/speculos | |
pytest --model ${{ matrix.model }} --path ./elfs/${{ matrix.model }}.elf --display headless | |
# ===================================================== | |
# RAGGER TESTS | |
# ===================================================== | |
build_ragger_elfs: | |
name: Build app for Ragger tests | |
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 | |
with: | |
upload_app_binaries_artifact: "ragger_elfs" | |
flags: "DEBUG=1 CAL_CI_KEY=1 DOMAIN_NAME_TEST_KEY=1" | |
jobs-ragger-tests: | |
name: Run Ragger tests | |
needs: build_ragger_elfs | |
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1 | |
with: | |
download_app_binaries_artifact: "ragger_elfs" | |
test_dir: tests/ragger |