Using Jenkins server

The linaro jenkins server can be found at https://ci.linaro.org/

Creating CI jobs

Jobs are created using https://jenkins-job-builder.readthedocs.io/en/latest/ , 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 https://jenkins-job-builder.readthedocs.io/en/latest/

    • 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