Eth client Python package only deployed on pypi.org #1870
Workflow file for this run
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: | |
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@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_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@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_TEST_KEY=1 DOMAIN_NAME_TEST_KEY=1 SET_PLUGIN_TEST_KEY=1 NFT_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" | |
# ===================================================== | |
# STATIC ANALYSIS | |
# ===================================================== | |
# Static analysis on the main ETH chain is covered by the guidelines enforcer | |
scan-build: | |
name: Clang Static Analyzer on altcoin | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest | |
strategy: | |
fail-fast: false | |
matrix: | |
device: ["nanos", "nanos2", "nanox", "stax"] | |
steps: | |
- name: Clone | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build with Clang Static Analyzer | |
run: | | |
eval "BOLOS_SDK=\$$(echo ${{ matrix.device }} | tr [:lower:] [:upper:])_SDK" && \ | |
echo "BOLOS_SDK value will be: ${BOLOS_SDK}" && \ | |
make -j ENABLE_SDK_WERROR=1 BOLOS_SDK=${BOLOS_SDK} CHAIN=polygon scan-build | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: scan-build | |
path: scan-build | |
- name: Upload scan result | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: scan-build | |
path: scan-build |