Jenkins Information

ICN project leverages Akriano Jenkins to run verify/test jobs. We join our servers into the Akriano Jenkins cluster. We have the following Jenkins slave nodes joined Akriano Jenkins. ICN jobs are supposed to be scheduled to our slave nodes by label icn-dev.

Slave InfomationServer Infomation
Slave NameLabelsSlave RootServer Info
prd-ubuntu-dev-44c-64gicn-dev/home/jenkins/akraino/slave_rootpod14-node1

To add more Jenkins slave nodes, please follow the akriano jenkins guide

Test Architecture

We support 3 jobs: golang verify job, shell verify job and e2e test job.

golang verify job
shell verify job
e2e test job

E2E test job detail

We have the following steps for e2e test:

  1. On Jenkins slave node: git clone icn
  2. Provision VM(s) by vagrant. A Vagrantfile which defines the VMs properties is needed. We can define many VM properties in the Vagrantfile:
  3. Setup virtual IPMI for compute nodes VM-2..n by virtualBMC.  VM-1 can send ipmi command via mnt_net to manage VM-2..n.
  4. Run ansbile playbook against VM-1. We use ansible playbook instead of shell script, because playbook is easier to read and maintain. The playbook calls scripts to setup local-controller services:

Patches for Test

bashate test: https://gerrit.akraino.org/r/c/ci-management/+/1794