1 ###################################
2 # job configuration for cperf
3 ###################################
8 #--------------------------------
10 #--------------------------------
18 branch: 'stable/{stream}'
19 gs-pathname: '/{stream}'
22 #--------------------------------
23 # POD, INSTALLER, AND BRANCH MAPPING
24 #--------------------------------
26 #--------------------------------
28 #--------------------------------
35 #--------------------------------
41 - 'cperf-{installer}-{pod}-{testsuite}-{stream}'
43 ################################
45 ################################
47 name: 'cperf-{installer}-{pod}-{testsuite}-{stream}'
60 name: '$BUILD_NUMBER Suite: $CPERF_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
70 - '{installer}-defaults'
72 testsuite: '{testsuite}'
73 gs-pathname: '{gs-pathname}'
74 docker-tag: '{docker-tag}'
80 - 'cperf-{testsuite}-builder'
82 ########################
84 ########################
89 name: CPERF_SUITE_NAME
90 default: '{testsuite}'
91 description: "Suite name to run"
94 default: '{gs-pathname}'
95 description: "Version directory where the opnfv documents will be stored in gs repository"
99 description: "Show debug output information"
102 default: '{docker-tag}'
103 description: 'Tag to pull docker image'
105 ########################
107 ########################
109 ########################
111 ########################
113 name: cperf-daily-builder
116 - 'cperf-robot-cbench'
119 name: cperf-robot-cbench
126 undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \
127 grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
128 INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
129 sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/overcloudrc /tmp/overcloudrc
130 sudo chmod 755 /tmp/overcloudrc
131 source /tmp/overcloudrc
133 # robot suites need the ssh key to log in to controller nodes, so throwing it
134 # in tmp, and mounting /tmp as $HOME as far as robot is concerned
135 sudo mkdir -p /tmp/.ssh
136 sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/.ssh/id_rsa /tmp/.ssh/
137 sudo chown -R jenkins-ci:jenkins-ci /tmp/.ssh
138 # done with sudo. jenkins-ci is the user from this point
139 sudo mv /tmp/.ssh/id_rsa ~jenkins-ci/.ssh/
140 chmod -R 0600 ~jenkins-ci/.ssh
142 # cbench requires the openflow drop test feature to be installed.
143 sshpass -p karaf ssh -o StrictHostKeyChecking=no \
144 -o UserKnownHostsFile=/dev/null \
146 -p 8101 karaf@$SDN_CONTROLLER_IP \
147 feature:install odl-openflowplugin-flow-services-ui odl-openflowplugin-drop-test
149 docker pull opnfv/cperf:$DOCKER_TAG
151 robot_cmd="pybot -e exclude -L TRACE \
152 -v ODL_SYSTEM_1_IP:${SDN_CONTROLLER_IP} \
153 -v ODL_SYSTEM_IP:${SDN_CONTROLLER_IP} \
154 -v BUNDLEFOLDER:/opt/opendaylight \
155 -v RESTCONFPORT:8081 \
158 -v ODL_SYSTEM_USER:heat-admin \
159 -v TOOLS_SYSTEM_IP:localhost \
161 robot_suite="/home/opnfv/repos/odl_test/csit/suites/openflowplugin/Performance/010_Cbench.robot"
163 docker run -v /tmp:/tmp opnfv/cperf:$DOCKER_TAG ${robot_cmd} ${robot_suite}
170 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
172 echo "Cleaning up docker containers/images..."
173 # Remove previous running containers if exist
174 if [[ ! -z $(docker ps -a | grep opnfv/cperf) ]]; then
175 echo "Removing existing opnfv/cperf containers..."
176 docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
179 # Remove existing images if exist
180 if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
181 echo "Docker images to remove:"
182 docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
183 image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
184 for tag in "${image_tags[@]}"; do
185 echo "Removing docker image opnfv/cperf:$tag..."
186 docker rmi opnfv/cperf:$tag >/dev/null