name: Build and run functional tests using ragger through reusable workflow # This workflow will build the app and then run functional tests using the Ragger framework upon Speculos emulation. # It calls a reusable workflow developed by Ledger's internal developer team to build the application and upload the # resulting binaries. # It then calls another reusable workflow to run the Ragger tests on the compiled application binary. # # While this workflow is optional, having functional testing on your application is mandatory and this workflow and # tooling environment is meant to be easy to use and adapt after forking your application on: workflow_dispatch: push: branches: - master - main - develop pull_request: jobs: build_application: name: Build application using the reusable workflow uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 with: upload_app_binaries_artifact: "ragger_elfs" flags: "CAL_TEST_KEY=1 DOMAIN_NAME_TEST_KEY=1 SET_PLUGIN_TEST_KEY=1 NFT_TEST_KEY=1" ragger_tests: name: Run ragger tests using the reusable workflow needs: build_application uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1 with: download_app_binaries_artifact: "ragger_elfs" build_clone_app: name: Build Clone app using the reusable workflow uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 with: flags: "CHAIN=thundercore" upload_app_binaries_artifact: "clone_elfs" ragger_clone_tests: name: Run ragger Clone tests using the reusable workflow needs: - build_application - build_clone_app uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1 with: download_app_binaries_artifact: "ragger_elfs" additional_app_binaries_artifact: "clone_elfs" additional_app_binaries_artifact_dir: ./tests/ragger/.test_dependencies/clone/build/ test_options: "--with_lib_mode"