Index

Asking for your project to be added

So, your project or your SIG need to run specific CI tests to validate the whole stack and you want to benefit from the CentOS CI environment ? Here are the steps to get "onboarded" :

How to use it

As soon as your account is created, you'll be able to :

Host jump.ci
 Hostname jump.ci.centos.org
 ProxyCommand none
 ForwardAgent yes
 GSSAPIAuthentication no

Host *.ci.centos.org
  ProxyCommand ssh jump.ci -W %h:%p
  ForwardAgent yes
  GSSAPIAuthentication no

You'll receive the following credentials :

Running your jenkins slave agent

If you need a jenkins slave, here is how you can run it on the slave VM : (assuming that jenkins remote root dir is /home/$project/)

cd /home/$project
wget https://ci.centos.org/jnlpJars/slave.jar #only once
java -jar slave.jar -jnlpUrl https://ci.centos.org/computer/${project_slave_name}/slave-agent.jnlp -secret ${secret key from above}

Requesting node[s] for the CI tests

Duffy is the name of the small middleware used to provision nodes for the CI tests. Read the dedicated page on how to use to request/return back nodes before/after CI tests. You can request multiple bare metal nodes (see http://wiki.centos.org/QaWiki/PubHardware) installed with :

You can find an example python build script at https://github.com/kbsingh/centos-ci-scripts; You will need to substitute the api key in, and modify the cmd= line to suite your requirements. This script also has the added advantage of letting you maintain the actual test suite in its own git repo, outside of the ci.centos.org infrastructure.

Building a Jenkins Job

  1. In the Jenkins job definition, be sure to select "Restrict where this project can be run" and enter your project name in the "Label Expression" field. This will request nodes from your project's workspace.

Integrating with Github

It may be useful to trigger jobs on events in Github (like pull requests, or pushes to specific branches). You can find some common scenarios, and step-by-step instructions for putting these together here: QaWiki/CI/GithubIntegration

Exporting artifacts (if needed) to a storage box

Projects can publish artifacts from their builds (e.g. VM images) to a publicly accessible folder (available at http://artifacts.ci.centos.org/). The rsync username is the name of the project user and the password is the first 13 characters (including the dash) of the duffy api key. For example: if the project's duffy key is 9c67d9c6-b5e2-11e4-b2af-525400ea212d the rsync password would be 9c67d9c6-b5e2.

Projects can sync to the artifact location using the following snippet:

RSYNC_PASSWORD='9c67d9c6-b5e2' rsync -av files-in-workdir-to-sync/ <project>@artifacts.ci.centos.org::<project>/

Tips, Tricks, Caveats, and Provisos

QaWiki/CI/GettingStarted (last edited 2017-02-17 17:54:08 by BrianStinson)