Document workflow for auto submission to Factory#412
Document workflow for auto submission to Factory#412perlpunk wants to merge 1 commit intoos-autoinst:masterfrom
Conversation
Reviewer's GuideAdded a comprehensive ‘Auto submission scripts for devel:openQA’ section to README.md, outlining the three Jenkins‐driven pipelines (trigger, monitor, submit/cleanup), the OBS project workflow, and usage examples. Flow diagram for auto submission scripts in devel:openQAflowchart TD
A[trigger-openqa_in_openqa] -->|If devel:openQA:testing is empty| B[osc release from devel:openQA to devel:openQA:testing]
B --> C[Trigger os-autoinst-distri-openqa tests using devel:openQA:testing]
C --> D[monitor-openqa_job]
D -->|All jobs passed| E[os-autoinst-obs-auto-submit]
D -->|Jobs failed| F[Delete packages from devel:openQA:testing]
E --> G[Submit packages from devel:openQA:tested to openSUSE:Factory]
E --> H[cleanup-obs-project]
H --> I[Delete all packages in devel:openQA:testing]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
6ab76e6 to
456d0fb
Compare
|
Addressed a couple of comments |
| ### `monitor-openqa_job` | ||
|
|
||
| This monitors `job_post_response` until all jobs are finished. If all jobs | ||
| passed, the auto submit pipeline will be run. |
There was a problem hiding this comment.
the auto submit pipeline (aka os-autoinst-obs-auto-submit) runs anyway if I am not wrong. it just doesnt do anything. or is it actual skipped if monitoring script failed?
There was a problem hiding this comment.
If the monitoring pipeline fails, the following pipeline is not run
|
|
||
| ### `os-autoinst-obs-auto-submit` | ||
|
|
||
| This script will copy contents from each `devel:openQA` package to |
There was a problem hiding this comment.
It will copy packages from devel:openQA:testing, right? Otherwise we might submit something we haven't tested (as new packages might have already ended up in devel:openQA).
There was a problem hiding this comment.
The code is really confusing though:
https://github.com/os-autoinst/scripts/blob/master/os-autoinst-obs-auto-submit#L7C1-L7C41
src_project=${src_project:-devel:openQA}
and then only later in the submit function:
https://github.com/os-autoinst/scripts/blob/master/os-autoinst-obs-auto-submit#L231
if [[ -n $staging_project && $staging_project != none && $staging_project != "$src_project" ]]; then
src_project=$staging_project
must_cleanup_staging=1
fi
If you only look at this line:
https://github.com/os-autoinst/scripts/blob/master/os-autoinst-obs-auto-submit#L202
cp -v "$src_project"/"$package"/* "$dst_project"/"$package"/
then you would think it copies from devel:openQA.
I wonder why it was done this way.
There was a problem hiding this comment.
I think it was done this way (probably initially by myself even though the code seems to have gone through quite some changes) because this way I didn't have to change all the lines where src_project is used.
|
|
||
| [devel:openQA](https://build.opensuse.org/project/show/devel:openQA) is the | ||
| project where the packages are automatically updated with every commit in git. | ||
|
|
There was a problem hiding this comment.
Maybe an explanation of devel:openQA:testing here in the middle would be good:
| [devel:openQA:testing](https://build.opensuse.org/project/show/devel:openQA:testing) contains | |
| packages currently being tested for submission to `openSUSE:Factory` and potentially other targets | |
| (via `devel:openQA:tested`, see next paragraph). It is only updated by the submission scripts themselves | |
| to remain otherwise unchanged while tests are running and a submission is prepared. (If we would | |
| submit directly from `devel:openQA` we might submit packages that have already changed since tests | |
| were executed so we would not necessarily submit what we have tested.) | |
There was a problem hiding this comment.
Something like that would be also nice 👍
Issue: https://progress.opensuse.org/issues/178105
Summary by Sourcery
Add detailed documentation for the automated OBS submission workflow in the README, outlining the trigger, monitor, and submit/cleanup scripts and the required OBS project setup.
Documentation: