motivation
jenkins is a great CI system (continuous integration) with a plethora of plugins available. SUSE QA uses openQA extensively as it excels in distribution and product testing - not only image comparison (common misconception ;-) ). How about combining both in using jenkins with plugins to act as a UI for openQA?
potential goals
simpler feedback
jenkins can be used by test developers and maintainers to get simpler feedback on
what is the current "big picture" of jobs, e.g.
- how many are failing
- since when
- how did the situation change
which failing tests are not claimed, where can I help
who is working on what
push notification
people who can fix failing tests, introduced a regression or the ones who want to keep tests running can be informed
- by email
- in IRC
- other means as preferred by the user …
an alternative interface to control an openQA instance
Using the jenkins CI web interface to schedule jobs, control trigger, review maintenance of the openQA server itself
execution
My personal plan is to follow the following steps in this order and priority
- refine goals and technical feasibilities into user stores and/or acceptance criteria and/or acceptance tests
- prepare jenkins and openQA test instances on my computer
- review and install all maybe useful plugins into jenkins
- interface openQA-->jenkins, i.e. one-way first from openQA to jenkins should be enough for first two goals, e.g. by polling in jenkins builds the status of openQA over its REST interface or maybe just the "client" script
- complete one user story using the above prerequisities
- document results and experiences
- implement more user stories
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 13 Hack Week 14
Activity
Comments
-
over 8 years ago by okurz | Reply
What I did so far
On lord.arch:
alias zp="sudo zypper"
zp in addrepo -f http://pkg.jenkins.io/opensuse/ jenkins
zp in jenkins python-jenkins python-jenkins-job-builder
sudo systemctl start jenkins
- connect to http://lord.arch:8080
- enter password from
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- enable account, e.g. 'okurz' with bugzilla password
- select plugins as useful. Full list of plugins
sed -n 's/Long-Name: //p' /var/lib/jenkins/plugins/*/META-INF/MANIFEST.MF
, saved on/suse/okurz/local/jenkins_plugins.txt
andsed -n 's/Short-Name: //p' /var/lib/jenkins/plugins/*/META-INF/MANIFEST.MF > ~/local/jenkins_plugins_short.txt
. I did not follow on installing plugins automatically but this might help: https://gist.github.com/hgomez/2048146ddfb04ca42d91 based on a text list of plugins as saved in before. Restore from backup of /var/lib/jenkins makes sense, see https://wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-Byhand. For this I enabled backup of my instance on lord.arch using unison to rsync everything from /var/lib/jenkins to ibrokeit.
Enabled OpenID so easy authentication for everyone (including gravatar plugin).
Allow jenkins to execute openqa api calls:
sudo gpasswd -a jenkins openqa
sudo chown .openqa /etc/openqa/client.conf
sudo chmod g+r /etc/openqa/client.conf
Configured one job to trigger a build if either triggered manually or if URL content on OBS download repo changes, i.e. checking
https://build.opensuse.org/package/binary/devel:openQA/openQA?arch=x86_64&filename=_buildenv&repository=SLE_12_SP1
checking the "last modification Date". And another job taking on monitoring the execution by polling on the webapi response until the job finishes returning with the corresponding result of the openQA job.Third job added which should trigger based on changes in github repo, in this case okurz/os-autoinst-distri-openQA on changes in master as well as new pull requests.
Setup IRC notification, visit #openqa-test for the notifications.
the jenkins jobs and what they do
krypton-openqa
: trigger on changes in krypton iso download folder on download.opensuse.org and monitor job execution on lord.arch openQAtrigger-openQA_in_openQA-SLES12SP1
: trigger an lord.arch openQA test run of "openQA in openQA" on changes in openQA OBS download repo + downstream job "monitor-openQAinopenQA-SLES12SP1"trigger-openQA_in_openQA-TW
: same as above but for Tumbleweed, building on most recent TW snapshottrigger-openQA_in_openQA_on_o-a-d-openQA-SLES12SP1
: trigger "trigger-openQAinopenQA-TW" on changes inhttp://github.com/okurz/os-autoinst-distri-openQA
Similar Projects
This project is one of its kind!