action #125723
closedcoordination #58184: [saga][epic][use case] full version control awareness within openQA
coordination #48641: [epic] Trigger openQA tests in pull requests of any product github pull request
Provide a ready-to-use container image or GitHub action repository to trigger/monitor openQA jobs as CI checks size:M
Description
Motivation¶
As a contributor to an openQA test repository I'd like to trigger openQA jobs from the CI with minimal configuration effort and without duplicating code.
Acceptance criteria¶
- AC1: A container image (or GitHub action repo) exists so triggering and monitoring openQA jobs requires only minimal configuration when setting up a project's CI
- AC2: No code needs to be copied & pasted to achieve AC1.
- AC3: Documentation how to setup openQA CI checks for a project on GitHub exists
Suggestions¶
- The container image is supposedly the way to go as it is not specific to GitHub.
- Provide a simple action.yaml and add it to the marketplace
- A script like https://github.com/Martchus/os-autoinst-distri-example/pull/1/files#diff-0c49fec5fa1043f61c80244f5166a024e6ffc25c73e86ef0822f385f641c5cb7 could be added to a container.
- What this script provides could be added as
openqa-cli
sub-command (#125720) and then the container would simply provideopenqa-cli
.
Updated by livdywan over 1 year ago
- Subject changed from Provide a ready-to-use container image or GitHub action repository to trigger/monitor openQA jobs as CI checks to Provide a ready-to-use container image or GitHub action repository to trigger/monitor openQA jobs as CI checks size:M
- Description updated (diff)
- Status changed from New to Workable
Updated by mkittler over 1 year ago
- Assignee set to mkittler
I'd like to work on it once https://github.com/os-autoinst/openQA/pull/5036 has been merged.
Updated by mkittler over 1 year ago
The PR hasn't been merged yet but for now I've created https://build.opensuse.org/package/show/devel:openQA:ci/client. I've also created https://github.com/Martchus/os-autoinst-distri-example/pull/new/ci-2 but it isn't worth creating a PR without https://github.com/os-autoinst/openQA/pull/5036.
Updated by okurz over 1 year ago
mkittler wrote:
The PR hasn't been merged yet but for now I've created https://build.opensuse.org/package/show/devel:openQA:ci/client.
I think we should reserve the :ci subproject for just the openQA CI dependencies itself, not what we deliver to users. Maybe just devel:openQA itself where we also publish other containers from?
Updated by mkittler over 1 year ago
Ok, I'll move it under devel:openQA
directly.
EDIT: Done, I've added it there as https://build.opensuse.org/package/show/devel:openQA/openQA_container_client following our current naming pattern.
Updated by mkittler over 1 year ago
- PR in example repo using https://build.opensuse.org/package/show/devel:openQA/openQA_container_client: https://github.com/os-autoinst/os-autoinst-distri-example/pull/12
- It currently fails because the credentials are missing; not sure why that's the case.
- The version of my fork (which is configured to run on my local openQA instance with all credentials are present): https://github.com/Martchus/os-autoinst-distri-example/pull/2
- Further openQA PRs to improve the client (shouldn't be required for ACs but nice to have):
openqa-cli
improvements: https://github.com/os-autoinst/openQA/pull/5047- fix for openQA's logging of auth errors: https://github.com/os-autoinst/openQA/pull/5048
- provide the container image's Dockerfile via the openQA repo: https://github.com/os-autoinst/openQA/pull/5049
- for testing with my own openQA instance which is made available under a nested path: https://github.com/os-autoinst/openQA/pull/5050
Updated by openqa_review over 1 year ago
- Due date set to 2023-04-05
Setting due date based on mean cycle time of SUSE QE Tools
Updated by mkittler over 1 year ago
I've created a new PR: https://github.com/os-autoinst/os-autoinst-distri-example/pull/13
This one works. Apparently, for secrets to be available the PR needs to be created from a branch on the same repo (not a fork). Not ideal but supposedly also nothing I can fix.
The most important openQA PR has also already been merged.
Updated by mkittler over 1 year ago
- Status changed from In Progress to Feedback
The container is now built based on the Dockerfile in the openQA Git repository.
So the only crucial PR for this ticket that is still pending is https://github.com/os-autoinst/os-autoinst-distri-example/pull/13.
Updated by mkittler over 1 year ago
- Status changed from Feedback to Resolved
This is resolved now. I've already been showing the CI runs in last Fridays demo as only the documentation was missing. It now has been merged as well (see https://github.com/os-autoinst/openQA/pull/5055) as all the other PRs mentioned in #125723#note-7.
Updated by okurz over 1 year ago
- Status changed from Resolved to Feedback
- Priority changed from Normal to High
https://github.com/os-autoinst/os-autoinst-distri-example/pull/13 should not have been merged. I created https://github.com/os-autoinst/os-autoinst-distri-example/pull/14 as a revert but we can discuss a better solution. The original purpose of os-autoinst-distri-example was and is to act as a starting point for trainings where people trigger openQA tests that fail quickly in an expected manner as the bootloader needle does not exist so that people can create needles as a training exercise.
Updated by okurz over 1 year ago
https://github.com/os-autoinst/os-autoinst-distri-example/pull/15 to update the description
Updated by okurz over 1 year ago
- Due date deleted (
2023-04-05) - Status changed from Feedback to Resolved
https://github.com/os-autoinst/os-autoinst-distri-example/pull/15 merged, we are good.