diff --git a/.github/workflows/system-tests.yaml b/.github/workflows/system-tests.yaml new file mode 100644 index 00000000..d72794aa --- /dev/null +++ b/.github/workflows/system-tests.yaml @@ -0,0 +1,29 @@ +name: System tests + +on: + pull_request: + types: [labeled] + +jobs: + gather-refs: + if: ${{ github.event.label.name == 'trigger-system-tests' }} + runs-on: ubuntu-latest + outputs: + reftutorials: ${{ steps.reftutorials.outputs.shorthash }} + steps: + - id: reftutorials + uses: nmbgeek/github-action-get-latest-commit@main + with: + owner: precice + repo: tutorials + branch: develop + + run-system-tests: + if: ${{ github.event.label.name == 'trigger-system-tests' }} + needs: gather-refs + uses: precice/tutorials/.github/workflows/run_testsuite_workflow.yml@develop + with: + suites: openfoam_adapter_pr + build_args: TUTORIALS_REF:${{ needs.gather-refs.outputs.reftutorials }},PRECICE_REF:v3.0.0,OPENFOAM_EXECUTABLE:openfoam2306,OPENFOAM_ADAPTER_REF:${{ github.event.pull_request.head.sha }} + systests_branch: develop + loglevel: "DEBUG" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f48c65ce..b09fa65b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,3 +27,13 @@ There are also a few additional workflows that can be triggered manually: - `Check links`: checks the links in all markdown files to verify if they are still reachable. Members of the repository can trigger these workflows in the "Actions" tab. + +## System tests + +For non-trivial pull requests, we also need to execute [system regression tests](https://precice.org/dev-docs-system-tests.html), +to ensure that complete simulations still run and give the same results. +Because these take long, run on an external system, and consume significant resources, +we are only triggering these on demand. Add (or ask a maintainer to add) the +`trigger-system-tests` label to the pull request to trigger them. +The tests will only run once, so that further commits don't consume additional +resources: In case you want to re-trigger them, remove and add the label again.