Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

We use Jenkins for ICN CI/CD. At the first phaseAkraino community has a publich jenkins cluster, we run CI jobs there. But the CD jobs, we need to run them in our private Jenkins cluster. For now, we support only one node Jenkins instead of Jenkins cluster.

Jenkins plugins: Gerrit-Trigger, Pipeline.

The Gerrit-Trigger plugin watches the ICN project on Gerrit. If a patch is created/updated, Gerrit-Trigger triggers the Jenkins job to run CI test. The Jenkins job is a Pipeline job which pulls Jenkinsfile from ICN project root directory. Gerrit-Trigger votes for the patch based on the result of the test.

Image Removed

Deploy Jenkins Service for ICN

We setup Jenkins by a script which leverages ansible jenkins playbook.

Jenkins Job

private jenkins deployment. The only supported OS is ubuntu 18.04

Akraino community Jenkins

The akraino community jenkins is at https://jenkins.akraino.org/view/icn/ , it runs CI jobs which triggered by gerrit patch. In return, jenkins pushes the CI check result back to gerrit.

We have added icn-master-verify job for icn project. Also we have added a slave node on which we run our icn CI job. To add more slave nodes, see the akraino jenkins guide Jenkins Peering Guide

Akraino private Jenkins

For the CD jobs, we run them in our private jenkins cluster. We have several one-node private jenkins clusters. Each one is for an use case.

To setup a private Jenkins, we can refer to the readme.md https://gerrit.akraino.org/r/gitweb?p=icn.git;a=blob;f=ci/README.md;h=3536070480950b75922f0713ce5d6e2d29b2c24b;hb=refs/heads/master . The steps are well documented thereThe Jenkins job is a pipeline job and the Jenkinsfile is located in ICN project. For the first phase, what the job does is to build the ISO image.