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

  • almost 8 years ago: pgeorgiadis liked this project.
  • almost 8 years ago: lyan liked this project.
  • over 8 years ago: dgutu joined this project.
  • over 8 years ago: dmaiocchi disliked this project.
  • over 8 years ago: dmaiocchi liked this project.
  • over 8 years ago: kpimenov liked this project.
  • over 8 years ago: evshmarnev liked this project.
  • about 9 years ago: dwaas liked this project.
  • about 9 years ago: joeyli liked this project.
  • about 9 years ago: RBrownSUSE liked this project.
  • about 9 years ago: pgonin liked this project.
  • about 9 years ago: IGonzalezSosa liked this project.
  • about 9 years ago: bchou liked this project.
  • about 9 years ago: bchou liked this project.
  • about 9 years ago: okurz started this project.
  • about 9 years ago: okurz originated this project.

  • Comments

    • okurz
      over 8 years ago by okurz | Reply

      Last hackweek I got distracted by other cool hackweek projects so not much time was invested in this project. I want to give it another try, maybe more focus on using jenkins as a "sophisticated cronjob UI" ;-)

    • okurz
      over 8 years ago by okurz | Reply

      https://www.youtube.com/watch?v=ZpZ2q91GZGI is a talk worth to look at as it also describes how jenkins and other tools can be interconnected, e.g. OBS

    • okurz
      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 and sed -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

    Similar Projects

    This project is one of its kind!