coordination #58184: [saga][epic][use case] full version control awareness within openQA, e.g. user forks and branches, fully versioned test schedules and configuration settings
coordination #48641: [epic] Trigger openQA tests in pull requests of any product github pull request
Supporting fork based development model size:M
Supporting fork based development model
We found a nice way to trigger openQA tests within GitHub workflows but that needs openQA credentials which are for example for os-autoinst-distri-openQA only provided in the base repository but not available to forks. We must find a way to support the fork based development model, what people usually do in GitHub.
- AC1: PRs like https://github.com/os-autoinst/os-autoinst-distri-example/pull/19 can successfully execute openQA based CI checks.
- AC2: The normal openQA cleanup strategy still applies, i.e. jobs are still cleaned up as normal
- AC3: openqa.opensuse.org+os-autoinst-distri-example support this workflow from github fork repositories
- AC4: Documentation covers the setup and use of this feature
- AC5: The implementation is generally reusable for any openQA instance and any openQA test distribution
- Maybe #127949 helps already, maybe we just need to trigger openQA tests from pull requests on pull request, not push?
- See what https://github.com/os-autoinst/os-autoinst-distri-example/blob/main/.github/workflows/openqa.yml#L23 does so far to trigger jobs from the example distribution on openQA
- Implement a new API route which can be used by github webhooks triggers
- Demonstrate that this approach works with a github repository
- Ensure the documentation covers the setup and use of this feature
- We can use https://github.com/os-autoinst/os-autoinst-distri-example/blob/main/scenario-definitions.yaml to define the jobs that are triggered
Out of scope¶
- It does not actually matter which specific openQA jobs are triggered, just any that refers to the test distribution
- It's ok if changes to scenario-definitions.yaml in the PR are not effective for the spawned jobs before merge