Jenkins Integration

Description

Currently we use GitHub Actions and Jenkins for CI. The GitHub Actions build the pushed commits and Pull Requests at GitHub. They also run some additional checks like Rubocop or sends the code coverage to coveralls.io. Jenkins jobs build the master packages and submits them to YaST:Head OBS project and optionally creates SR to Factory.

OBS Setup

By default the packages from the YaST:HEAD OBS repository are used. (As configured in the Rakefile in Git repositories.)

For building the older versions the different project is used, e.g. YaST:SLE-12:SP1.

Automatic Package Submission

When a commit is checked in to one of the YaST Git repositories on GitHub (usually via a pull request on GitHub), in most cases a package is automatically submitted to the openSUSE Build Service (OBS).

For more details, see automatic package submission.

Troubleshooting

Restarting a Build

If a Jenkins build fails for some temporary reason (e.g. OBS down, network issues, ...) you can restart it by clicking the "Retry" button in the job details. You need to be logged in, the credentials are stored in the internal wiki page.

No Space Left at the Worker

In some rare cases the disk space at the Jenkins worker might be used up. If you see some strange failures (cannot write files, strange crashes) they might be caused by insufficient disk space.

There is an automatic clean up job configured which is executed automatically at some precofigured interval to prevent from these issues. See the yast-jenkins-worker-cleanup job.

  • You can run the clean up job manually, just log into Jenkins and trigger the job. The disk space should be freed by deleting some caches.
  • If that does not help you can use the SSH access and check the details.