[CORD-2484] Adding macros for JJB jobs

Change-Id: Id76399d2eb950ccca292f1a1b958900728712448
14 files changed
tree: 130adcc6fb587f39edf74c3016649b33342f2d7a
  1. .coafile
  2. .editorconfig
  3. .gitignore
  4. .gitmodules
  5. .gitreview
  6. Makefile
  7. README.md
  8. jenkins-scripts/
  9. jenkins.ini.example
  10. jjb/
  11. packer/
  12. tox.ini
  13. yamllint.conf
README.md

ci-management for CORD

This repo holds configuration for the Jenkins testing infrastructure used by CORD.

The best way to work with this repo is to check it out with repo, per these instructions: Downloading testing and QA repositories

NOTE: This repo uses git submodules. If you have trouble with the tests or other tasks, please run: git submodule init && git submodule update to obtain these submodules, as repo won't do this automatically for you.

Jenkins Job Builder (JJB) Documentation

Official JJB Docs

LF Best practices for JJB

Testing job definitions

JJB job definitions can be tested by running:

make test

Which will create a python virtualenv, install jenkins-job-builder in it, then try building all the job files, which are put in job-configs and can be inspected.

cord-infra macros

There are a few useful macros defined in jjb/cord-macros.yml

  • cord-infra-properties - sets build discarder settings
  • cord-infra-gerrit-repo-scm - checks out the entire source tree with the repo tool
  • cord-infra-gerrit-repo-patch - checks out a patch to a git repo within a checked out repo source tree (WIP, doesn't work yet)
  • cord-infra-gerrit-trigger-patchset - triggers build on gerrit new patchset, draft publishing, comments, etc.
  • cord-infra-gerrit-trigger-merge - triggers build on gerrit merge

Things to look out for

AMI Images and Cloud instances

If you make changes which create a new packer image, you have to manually set the instance AMI ID on jenkins in Global Config > Cloud > Amazon EC2.

Creating new EC2 instance types

If you create a new cloud instance type, make sure to set both the Security group names and Subnet ID for VPC or it will fail to instantiate.

Links to other projects using LF JJB