Merge pull request #555 from LedgerHQ/fbe/redo_async_in_tests #2033
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 (Speculos and Zemu) | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
- develop | |
pull_request: | |
jobs: | |
# ===================================================== | |
# 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@v4 | |
- 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@v4 | |
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: Checkout | |
uses: actions/checkout@v4 | |
- name: Install additional tools | |
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@v4 | |
with: | |
path: tmp/ | |
- name: Gather elfs | |
run: cp tmp/e2e_zemu_elfs/*.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@v4 | |
- name: Build testing binaries | |
run: | | |
mkdir tests/speculos/elfs | |
make clean && make -j DEBUG=1 NFT_STAGING_KEY=1 BOLOS_SDK=$NANOS_SDK && mv bin/app.elf tests/speculos/elfs/nanos.elf | |
make clean && make -j DEBUG=1 NFT_STAGING_KEY=1 BOLOS_SDK=$NANOX_SDK && mv bin/app.elf tests/speculos/elfs/nanox.elf | |
make clean && make -j DEBUG=1 NFT_STAGING_KEY=1 BOLOS_SDK=$NANOSP_SDK && mv bin/app.elf tests/speculos/elfs/nanosp.elf | |
- name: Upload app binaries | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
- name: Create tmp folder for artifacts | |
run: mkdir tests/speculos/elfs | |
- name: Download app binaries | |
uses: actions/download-artifact@v4 | |
with: | |
path: tmp/ | |
- name: Gather elfs | |
run: cp tmp/e2e_speculos_elfs/*.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 |