...
To setup private jenkins, please refer to the README.md under icn/ci/
The private jenkins cluster is setup on pod14-node2. We can visit the jenkins with the node ip address: http://10.10.140.22:8080/
Test Architecture
We support 3 jobs: golang verify job, shell verify job and e2e test job.
...
the following jobs
CI job for golang
- triggered by gerrit patch creation/update.
- Run a make command, which builds golang pkg
- Post +1/-1 for gerrit patch if the build succeeds/fails
CI job for shell
...
- triggered by gerrit patch creation/update.
- Run a make command, which runs bashate to check shell scripts
- Post +1/-1 for gerrit patch if the check passes/fails
...
CD job for test
...
- triggered daily automatically
- Run a make command, which creates VM(s) and deploys ICN components on the VM(s)
- Send daily report to mailing list
CI jobs detail
...
CD job detail
We have the following steps for e2e testCD job:
- On our private Jenkins slave node: git clone icnProvision VM(s) node, we provision a VM by vagrant. A Vagrantfile which defines the VMs properties is needed. We can define many VM properties in the Vagrantfile:
- VM network information: mac address, ip address for each nicVM hostname
- VM memory 64G, cpu 16, disk
- 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.
- 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:
- script for k8s setup? (TODO)
- script for kud plugin? (TODO)
- script for metal3 installation? (TODO)
- script for compute nodes provision? (TODO)
...
- 300GB
- Login to the VM and run 'make verifier' which installs the components in the VM
- We destroy the VM as the last step of the job
CI Testing<WIP>:
Please explain, how you CI testing for your project, Not more than 3 points
...