Skip to content

Continuous Integration and the Open Build Service

Ladislav Slezák edited this page Jan 16, 2017 · 2 revisions

Continuous Integration and the Open Build Service

To ensure the code still builds after doing any change we use Continuous Integration and automatic integration with the Open Build Service (OBS).

Continuous Integration

For continuous integration we use the Travis CI service and the Jenkins service.

Travis

The Travis CI builds all commits and all pull requests in the snapper GiHub repository. Travis then reports the build status back to GitHub.

See more details in the README.Travis.md document.

Jenkins

Jenkins is used mainly to submit the packages to OBS.

Public Jenkins

The public Jenkins instance builds the package and on success it uploads the sources to the filesystems:snapper.

When the package version is different than in the openSUSE:Factory project then a submit request is automatically created to update the package to the new version.

See the current build status and the details in the snapper-master job.

Internal Jenkins

The internal Jenkins instance is used for building the package and submitting it to the internal build service instance (not accessible from the Internet).

See the snapper-master Jenkins job (accessible only from the internal SUSE network).

Open Build Service

The development is done in the filesystems:snapper OBS project.

The snapper package is also built at the filesystems project (it links to the filesystems:snapper project).

The reason for a separate filesystems:snapper project is that the filesystems project builds the packages only for the (open)SUSE distributions while snapper wants to support more (even non-SUSE) distributions.

Automatic Package Submission

Automatic package submission from filesystems:snapper to openSUSE:Factory is done using the snapper-master Jenkins job described above.

The internal Jenkins uploads the package to the Devel:YaST:Head project and creates a submit request to the current development SLE product.

Maintenance Updates

All maintenance updates for the already released products must be done manually.