diff --git a/.github/workflows/build_and_functional_tests.yml b/.github/workflows/build_and_functional_tests.yml index 014f22f..610f15a 100644 --- a/.github/workflows/build_and_functional_tests.yml +++ b/.github/workflows/build_and_functional_tests.yml @@ -1,9 +1,6 @@ -name: Build and run functional tests using ragger through reusable workflow +name: Call build and tests entry point -# 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. +# This workflow will call the companion workflow reusable_build_and_functional_tests.yml of this repository # # The build part of this workflow is mandatory, this ensures that the app will be deployable in the Ledger App Store. # While the test part of this workflow is optional, having functional testing on your application is mandatory and this workflow and @@ -28,17 +25,9 @@ on: pull_request: jobs: - build_application: - name: Build application using the reusable workflow - uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 + job_call_build_and_test: + name: Build and test + uses: ./.github/workflows/reusable_build_and_functional_tests.yml with: - upload_app_binaries_artifact: "compiled_app_binaries" - builder: ledger-app-builder - - 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: "compiled_app_binaries" + branch: ${{ github.ref }} regenerate_snapshots: ${{ inputs.golden_run == 'Open a PR' }} diff --git a/.github/workflows/reusable_build_and_functional_tests.yml b/.github/workflows/reusable_build_and_functional_tests.yml new file mode 100644 index 0000000..d0c2244 --- /dev/null +++ b/.github/workflows/reusable_build_and_functional_tests.yml @@ -0,0 +1,51 @@ +name: Build and run functional tests using ragger entry point + +# 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. +# +# This workflow is itself written as a reusable workflow so it can be triggered by itself (file +# build_and_functional_tests.yml), or triggered by external repositories CI (used by various non regression workflows +# we have). You do not need to keep this split, so you can merge this file and build_and_functional_tests.yml on your +# fork + +on: + workflow_call: + inputs: + branch: + required: false + default: 'master' + type: string + + test_filter: + required: false + default: '""' + type: string + + regenerate_snapshots: + description: 'Clean snapshots, regenerate them, commit the changes in a branch, and open a PR' + required: false + default: false + type: boolean + +jobs: + build_application: + name: Build application using the reusable workflow + uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 + with: + app_repository: LedgerHQ/app-boilerplate-rust + app_branch_name: ${{ inputs.branch }} + upload_app_binaries_artifact: "compiled_app_binaries" + builder: ledger-app-builder + + 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: + app_repository: LedgerHQ/app-boilerplate-rust + app_branch_name: ${{ inputs.branch }} + download_app_binaries_artifact: "compiled_app_binaries" + test_filter: ${{ inputs.test_filter }} + regenerate_snapshots: ${{ inputs.regenerate_snapshots }}