Using Jenkins server
The linaro jenkins server can be found at https://ci.linaro.org/
Creating CI jobs
Jobs are created using Jenkins Job Builder — Jenkins Job Builder 6.4.3.dev1 documentation , which allows us define the jobs as yaml files, to be merged in via Gerrit. The repository from the jobs configurations is at
https://git.linaro.org/ci/job/configs.git/
Sample CI job
Notable features
job: name must match the filename
The YAML format is defined at Jenkins Job Builder — Jenkins Job Builder 6.4.3.dev1 documentation
Not all features listed are available, as they depend on plugins our Jenkins may not have installed
On request, we can install plugins needed
the users and groups “authorization” are from https://linaro.atlassian.net/wiki/spaces/IKB/pages/14099815248
Our convention is not to include shell scripts as part of the job definition, but as shell script in the git repository, included with !include-raw stanza
Secret values can be stored in the Jenkins, and you can refer to them via “credentials-binding”
The node: is jenkins node to use to builds. Most cases, we use docker container based build nodes. They are in the form of “docker-distro-architecture”, such as docker-buster-arm64.
Adding Job configs to our jenkins
After creating the configuration, submit it to our Code Review Server
Wait for the bot to verify the gerrit review with CI job configs sanity check [Jenkins]
If your team has someone in the “linaro-ci-jobs-configs-approvers” gerrit group, request for them to review and submit your job configuration.
Else as #systems channel in Linaro https://linaro.atlassian.net/wiki/spaces/IKB/pages/14411367327
Deleting a Job from Jenkins
To remove a job from Jenkins, you need to set the display-name
to “DELETE ME” in the config. The next time jjb is run, the job will be removed from Jenkins and it is safe to “git rm” the file from the repository.
In the event that you delete a job config before running the “DELETE ME” step, you will need to contact a Systems team member to manually remove the job from Jenkins via the administrative interface.