-
Notifications
You must be signed in to change notification settings - Fork 25
Document workflow for auto submission to Factory #412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: