@@ -68,6 +68,7 @@ pipeline {
6868 environment {
6969 image_tag = "${env.GIT_COMMIT}"
7070 image_name = "polycube"
71+ container = "polycubed"
7172 registryCred = credentials('polycube-repo')
7273 notification_url = credentials('slack-notifications')
7374 github_token = credentials('github_status_update')
@@ -215,19 +216,27 @@ pipeline {
215216 script {
216217 docker.withRegistry("", 'polycube-repo') {
217218 sh """
218- docker stop polycubed || true
219+ docker stop $container || true
219220 docker system prune --all --force
220- # Launch the polycubed daemon and extract the polycubectl
221- # /proc is mounted under /host/proc to have a complete visibility of the namespaces created outside of the container
222- docker run -d --name polycubed --rm --privileged --pid=host --cap-add ALL --network host -v /proc:/host/proc -v /lib/modules:/lib/modules:ro -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-default:${image_tag}
223- mkdir bin
224- docker cp polycubed:/usr/local/bin/polycubectl ./bin/
221+ set +e
222+
225223 # Overload environment variables in order to adapt the behavior of run_tests script
226- export PATH=$PATH:${WORKSPACE}/bin
227- export KILL_COMMAND="docker stop polycubed"
228- export polycubed="docker run -d --name polycubed --rm --privileged --pid=host --cap-add ALL --network host -v /lib/modules:/lib/modules:ro -v /proc:/host/proc -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-default:${image_tag}"
229- # Killing polycube image if running
224+ export KILL_COMMAND="docker stop $container"
225+
226+ # /proc is mounted under /host/proc to have a complete visibility of the namespaces created outside of the container
227+ export polycubed="docker run -d --name $container --rm --privileged --pid=host --cap-add ALL --network host -v /proc:/host/proc -v /lib/modules:/lib/modules:ro -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-default:${image_tag}"
228+
229+ # Launch the polycubed daemon
230+ \$polycubed /bin/sleep infinity
231+
232+ # Copy binaries, headers and libraries from docker to host fs
233+ sudo ./CI/extract_from_docker_image.sh $container
234+
230235 \$KILL_COMMAND
236+
237+ \$polycubed
238+ docker ps
239+
231240 cd tests/
232241 # For the moment, tests always returns 0 to enable junit generation
233242 ./run-tests.sh || true
@@ -237,6 +246,10 @@ pipeline {
237246 pip install -r converter/requirements.txt
238247 export TEST_RESULTS=`ls -1 test_results_*`
239248 python3 converter/to_junit.py CleanInstance
249+ cd ..
250+
251+ # Cleaning slave
252+ sudo ./CI/clean_slave.sh
240253 """
241254 }
242255 }
@@ -249,7 +262,7 @@ pipeline {
249262 }
250263 script {
251264 sh """
252- docker stop polycubed || true
265+ docker stop $container || true
253266 docker system prune --all --force
254267 """
255268 }
@@ -280,22 +293,38 @@ pipeline {
280293 script {
281294 docker.withRegistry("", 'polycube-repo') {
282295 sh """
283- docker stop polycubed || true
296+ docker stop $container || true
284297 docker system prune --all --force
285298 set +e
286- docker run -d --name polycubed --rm --privileged --pid=host --cap-add ALL --network host -v /proc:/host/proc -v /lib/modules:/lib/modules:ro -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-default:${image_tag}
287- mkdir bin
288- docker cp polycubed:/usr/local/bin/polycubectl ./bin/
289- export PATH=$PATH:${WORKSPACE}/bin
290- export KILL_COMMAND="docker stop polycubed"
291- export polycubed="docker run -d --name polycubed --rm --privileged --pid=host --cap-add ALL --network host -v /lib/modules:/lib/modules:ro -v /proc:/host/proc -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-default:${image_tag}"
299+
300+ # Overload environment variables in order to adapt the behavior of run_tests script
301+ export KILL_COMMAND="docker stop $container"
302+
303+ # /proc is mounted under /host/proc to have a complete visibility of the namespaces created outside of the container
304+ export polycubed="docker run -d --name $container --rm --privileged --pid=host --cap-add ALL --network host -v /proc:/host/proc -v /lib/modules:/lib/modules:ro -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-default:${image_tag}"
305+
306+ # Launch the polycubed daemon
307+ \$polycubed /bin/sleep infinity
308+
309+ # Copy binaries, headers and libraries from docker to host fs
310+ sudo ./CI/extract_from_docker_image.sh $container
311+
312+ \$KILL_COMMAND
313+
314+ \$polycubed
315+
316+ docker ps
292317 cd tests/ && ./run-tests.sh false || true
293318 export LC_ALL=C
294319 virtualenv venv -p python3
295320 . venv/bin/activate
296321 pip install -r converter/requirements.txt
297322 export TEST_RESULTS=`ls -1 test_results_*`
298323 python3 converter/to_junit.py SameInstance
324+ cd ..
325+
326+ # Cleaning slave
327+ sudo ./CI/clean_slave.sh
299328 """
300329 }
301330 }
@@ -308,7 +337,7 @@ pipeline {
308337 archiveArtifacts artifacts: 'tests/test_results*'
309338 }
310339 sh """
311- docker stop polycubed || true
340+ docker stop $container || true
312341 docker system prune --all --force
313342 """
314343 }
@@ -339,22 +368,37 @@ pipeline {
339368 script {
340369 docker.withRegistry("", 'polycube-repo') {
341370 sh """
342- docker stop polycubed || true
371+ docker stop $container || true
343372 docker system prune --all --force
344373 set +e
345- docker run -d --name polycubed --rm --privileged --pid=host --cap-add ALL --network host -v /proc:/host/proc -v /lib/modules:/lib/modules:ro -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-pcn-iptables:${image_tag}
346- mkdir bin
347- docker cp polycubed:/usr/local/bin/polycubectl ./bin/
348- export PATH=$PATH:${WORKSPACE}/bin
349- export KILL_COMMAND="docker stop polycubed"
350- export polycubed="docker run -d --name polycubed --rm --privileged --pid=host --cap-add ALL --network host -v /lib/modules:/lib/modules:ro -v /proc:/host/proc -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-pcn-iptables:${image_tag}"
374+
375+ # Overload environment variables in order to adapt the behavior of run_tests script
376+ export KILL_COMMAND="docker stop $container"
377+
378+ # /proc is mounted under /host/proc to have a complete visibility of the namespaces created outside of the container
379+ export polycubed="docker run -d --name $container --rm --privileged --pid=host --cap-add ALL --network host -v /proc:/host/proc -v /lib/modules:/lib/modules:ro -v /var/run/netns/:/var/run/netns:rw -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro polycubebot/${image_name}-pcn-iptables:${image_tag}"
380+
381+ # Launch the polycubed daemon
382+ \$polycubed /bin/sleep infinity
383+
384+ # Copy binaries, headers and libraries from docker to host fs
385+ sudo ./CI/extract_from_docker_image.sh $container
386+
387+ \$KILL_COMMAND
388+
389+ \$polycubed
390+
351391 cd tests/ && ./run-tests-iptables.sh || true
352392 export LC_ALL=C
353393 virtualenv venv -p python3
354394 . venv/bin/activate
355395 pip install -r converter/requirements.txt
356396 export TEST_RESULTS=`ls -1 test_results_*`
357397 python3 converter/to_junit.py Iptables
398+ cd ..
399+
400+ # Cleaning slave
401+ sudo ./CI/clean_slave.sh
358402 """
359403 }
360404 }
@@ -367,7 +411,7 @@ pipeline {
367411 }
368412 script {
369413 sh """
370- docker stop polycubed || true
414+ docker stop $container || true
371415 docker system prune --all --force
372416 """
373417 }
0 commit comments