-
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?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -196,6 +196,68 @@ environment variables: | |
* `from_email` - The From address for notification emails | ||
* `force_result` - If set to `1` tickets in the [tracker openqa-force-result](https://progress.opensuse.org/projects/openqav3/issues?query_id=700) can override job results | ||
|
||
## Auto submission scripts for `devel:openQA` | ||
|
||
There are three scripts/pipelines responsible for managing submissions in OBS: | ||
* Trigger: `trigger-openqa_in_openqa` | ||
* Monitor: `monitor-openqa_job` | ||
* Submit: `os-autoinst-obs-auto-submit` / `cleanup-obs-project` | ||
|
||
They are called in [Jenkins](http://jenkins.qa.suse.de/) | ||
|
||
There are three projects in OBS: | ||
* [devel:openQA](https://build.opensuse.org/project/show/devel:openQA) | ||
* [devel:openQA:testing](https://build.opensuse.org/project/show/devel:openQA:testing) | ||
* [devel:openQA:tested](https://build.opensuse.org/project/show/devel:openQA:tested) | ||
|
||
[devel:openQA](https://build.opensuse.org/project/show/devel:openQA) is the | ||
project where the packages are automatically updated with every commit in git. | ||
|
||
[devel:openQA:tested](https://build.opensuse.org/project/show/devel:openQA:tested) | ||
d3flex marked this conversation as resolved.
Show resolved
Hide resolved
|
||
contains the devel projects for `openSUSE:Factory`. They should always be | ||
present and can be created like this: | ||
|
||
``` | ||
osc linkpac openSUSE:Factory openQA devel:openQA:tested | ||
osc changedevelrequest openSUSE:Factory openQA devel:openQA:tested openQA -m "assign a devel project" | ||
osc linktobranch devel:openQA:tested openQA | ||
``` | ||
|
||
### `trigger-openqa_in_openqa` | ||
|
||
This script is called first. Its primary purpose is to regularly schedule | ||
[`os-autoinst-distri-openqa` tests](https://openqa.opensuse.org/group_overview/24) | ||
using `devel:openQA`. The monitor and autosubmit pipeline will be called | ||
but having no effect. | ||
|
||
Only if there are no packages in `devel:openQA:testing`, it will `osc release` | ||
all packages present in `devel:openQA:tested` from `devel:openQA` to | ||
Martchus marked this conversation as resolved.
Show resolved
Hide resolved
|
||
`devel:openQA:testing`. | ||
|
||
Then it triggers `os-autoinst-distri-openqa` tests using `devel:openQA:testing`, | ||
logging to `job_post_response`. | ||
|
||
### `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 commentThe 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 commentThe reason will be displayed to describe this comment to others. Learn more. If the monitoring pipeline fails, the following pipeline is not run |
||
|
||
Otherwise, it will delete packages from `devel:openQA:testing` again and | ||
return an error. | ||
|
||
### `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 commentThe reason will be displayed to describe this comment to others. Learn more. It will copy packages from There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
and then only later in the submit function:
If you only look at this line:
then you would think it copies from I wonder why it was done this way. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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:tested`, generate the changelog, and | ||
submit the packages to `openSUSE:Factory` and potentially other target | ||
projects. | ||
|
||
In order to give reviewers time to review existing submit requests it will not | ||
d3flex marked this conversation as resolved.
Show resolved
Hide resolved
|
||
create new ones in a certain timeframe. | ||
|
||
After creating submit requests, it calls `cleanup-obs-project` to delete all | ||
packages in `devel:openQA:testing`. | ||
|
||
## Contribute | ||
|
||
This project lives in https://github.com/os-autoinst/scripts | ||
|
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: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 👍