Skip to content

kbsingh/rhscl-container-ci

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI Tests for Container Images Based on Red Hat Software Collections

This directory contains job configuration files, managed through Jenkins Job Builder, to run tests for each Container Image based on Red Hat Software Collections.

Current list of tested images can be found in Github team repositories or in configuration file.

Now tests are run in two Jenkins instances:

  • CentOS CI

    • jobs to test Pull Requests (test CentOS based variants of images)
  • Non-public Jenkins server (to know more ask mskalick@redhat.com)

    • jobs to test Pull Requests (test RHEL based variants of images)

    • jobs to build CentOS based variants of images on every new commit and push them to Docker Hub

Note: These two Jenkins instances differ in way how they run tests/commands. So some configuration files in this repository are specific to only one of CentOS/RHEL testing.

Pre-requisites

To use scripts in this repository to update jobs in Jenkins you need:

  • virtualenv command, supplied through the python-virtualenv RPM

JJB will be installed into a virtual environment under this directory, so is safe to run on any system.

Testing job modifications

./run.sh test -o /tmp/jobs

If the script exited without any errors the XML definitions of the jobs will be available in /tmp/jobs.

Updating all jobs

The provided script can update the Jenkins jobs over the API by running JJB.

./run.sh update

If you haven't run it before, it will fail with an authentication error:

jenkins.JenkinsException: Error in request. Possibly authentication failed
[401]: Invalid password/token for user

Edit the newly created jenkins_jobs.ini and jenkins_jobs_rhscl.ini files. Add the username/password for access to Jenkins, edit URL in jenkins_jobs_rhscl.ini and then re-run the command.

Note: SCLo-sig credentials for ci.centos.org can be found in the home directory on slave01.ci.centos.org.

Using run.sh

run.sh is simple wrapper for jenkins-jobs command. It supports "update", "test" and "delete" commands. And according specified name prefix of jobs it selects right configuration file and adds -r $THISDIR/yaml to specify path for commands.

During updating jobs you can select jobs by globbing. For example to update jobs configured for CentOS CI run

./run.sh update SCLo-*

or to update the RHEL related jobs in different jenkins instance run

./run.sh update rhscl-*

Generating jobs

Project files for each Software Collection Docker image in folder ./yaml/jobs/collections/ can be generated by running ./run.sh. If project file for some line in configuration file does not exist, it is generated by substituting values to template. Each line of this file has format: "name namespace github_org github_project triggering_project".

By default each project has these three jenkins jobs generated:

  • SCLo-container-{name}-{namespace}: job which tests content of pull requests in CentOS7. It requires to run on CentOS CI infrastructure).

  • rhscl-images-{name}-{namespace}: job which tests content of pull requests in RHEL7. This job is not configured to use CentOS CI infrastructure and it requires to run on machine with access to RHEL7 Docker image.

  • rhscl-images-{name}-{namespace}-build: job which after new commit to repository builds CentoOS7 based image and pushes it to Docker Hub. This job is not configured to use CentOS CI infrastructure.

Projects do not have to use all three default jobs. Some files in ./yaml/jobs/collections/ can be manually created/updated. So be careful when regenerating all project files.

How to add tests for a new image

When a new image is created and we want to add testing of it, the easiest way is to add a new entry to ./configuration file and run ./run.sh (missing project files are generated):

./run.sh test

Then a PR should include ./configuration and the newly created file ./yaml/jobs/collections/<newspec>.

In order to allow testing of the pull-requests, make sure the 'centos-ci' and 'rhscl-bot' github users has permissions to write to the new repository.

About

This repository contains scripts and jenkins job configuration for testing RHSCL container images.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%