Skip to content

Commit 456d0fb

Browse files
committed
Document workflow for auto submission to Factory
Related issue: https://progress.opensuse.org/issues/178105
1 parent ddc6959 commit 456d0fb

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

README.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,68 @@ environment variables:
196196
* `from_email` - The From address for notification emails
197197
* `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
198198

199+
## Auto submission scripts for `devel:openQA`
200+
201+
There are three scripts/pipelines responsible for managing submissions in OBS:
202+
* Trigger: `trigger-openqa_in_openqa`
203+
* Monitor: `monitor-openqa_job`
204+
* Submit: `os-autoinst-obs-auto-submit` / `cleanup-obs-project`
205+
206+
They are called in [Jenkins](http://jenkins.qa.suse.de/)
207+
208+
There are three projects in OBS:
209+
* [devel:openQA](https://build.opensuse.org/project/show/devel:openQA)
210+
* [devel:openQA:testing](https://build.opensuse.org/project/show/devel:openQA:testing)
211+
* [devel:openQA:tested](https://build.opensuse.org/project/show/devel:openQA:tested)
212+
213+
[devel:openQA](https://build.opensuse.org/project/show/devel:openQA) is the
214+
project where the packages are automatically updated with every commit in git.
215+
216+
[devel:openQA:tested](https://build.opensuse.org/project/show/devel:openQA:tested)
217+
contains the devel projects for `openSUSE:Factory`. They should always be
218+
present and can be created like this:
219+
220+
```
221+
osc linkpac openSUSE:Factory openQA devel:openQA:tested
222+
osc changedevelrequest openSUSE:Factory openQA devel:openQA:tested openQA -m "assign a devel project"
223+
osc linktobranch devel:openQA:tested openQA
224+
```
225+
226+
### `trigger-openqa_in_openqa`
227+
228+
This script is called first. Its "normal" job is to hourly schedule
229+
[`os-autoinst-distri-openqa` tests](https://openqa.opensuse.org/group_overview/24)
230+
using `devel:openQA`. The monitor and autosubmit pipeline will be called
231+
but having no effect.
232+
233+
Only if there are no packages in `devel:openQA:testing`, it will `osc release`
234+
all packages from `devel:openQA` to `devel:openQA:testing`.
235+
(All packages means all packages present in `devel:openQA:tested`).
236+
237+
Then it triggers `os-autoinst-distri-openqa` tests using `devel:openQA:testing`,
238+
logging to `job_post_response`.
239+
240+
### `monitor-openqa_job`
241+
242+
This monitors `job_post_response` until all jobs are finished. If all jobs
243+
passed, the auto submit pipeline will be run.
244+
245+
Otherwise, it will delete packages from `devel:openQA:testing` again and
246+
return an error.
247+
248+
### `os-autoinst-obs-auto-submit`
249+
250+
This script will copy contents from each `devel:openQA` project to
251+
`devel:openQA:tested`, generate the changelog, and
252+
submit the packages to `openSUSE:Factory` and potentially other target
253+
projects.
254+
255+
In order to give reviewers time to review existing submit requests it will not
256+
create new ones in a certain timeframe.
257+
258+
After creating submit requests, it calls `cleanup-obs-project` to delete all
259+
packages in `devel:openQA:testing`.
260+
199261
## Contribute
200262

201263
This project lives in https://github.com/os-autoinst/scripts

0 commit comments

Comments
 (0)