dc2ae5aa24afb17cc461fee530daf2458e215ad7
[releng.git] / jjb / dovetail / dovetail-artifacts-upload.yml
1 ############################################
2 # dovetail upload artifacts job
3 ############################################
4 - project:
5     name: dovetail-artifacts-upload
6
7     project: 'dovetail'
8
9     jobs:
10         - 'dovetail-{image}-artifacts-upload-{stream}'
11
12     stream:
13         - master:
14             branch: '{stream}'
15             gs-pathname: ''
16             disabled: false
17
18     image:
19         - 'dovetail'
20         - 'functest'
21         - 'yardstick'
22
23 #############################################
24 # job template
25 #############################################
26
27 - job-template:
28     name: 'dovetail-{image}-artifacts-upload-{stream}'
29
30
31     disabled: '{obj:disabled}'
32
33     concurrent: true
34
35     properties:
36         - throttle:
37             enabled: true
38             max-total: 1
39             max-per-node: 1
40             option: 'project'
41
42     parameters:
43         - project-parameter:
44             project: '{project}'
45         - gerrit-parameter:
46             branch: '{branch}'
47         - 'opnfv-build-ubuntu-defaults'
48         - dovetail-parameter:
49             gs-pathname: '{gs-pathname}'
50             image: '{image}'
51             branch: '{branch}'
52
53     scm:
54         - git-scm
55
56     builders:
57         - 'dovetail-builder-artifacts-upload'
58         - 'dovetail-workspace-cleanup'
59
60 ####################
61 # parameter macros
62 ####################
63 - parameter:
64     name: dovetail-parameter
65     parameters:
66         - string:
67             name: CACHE_DIR
68             default: $WORKSPACE/cache{gs-pathname}
69             description: "the cache to store packages downloaded"
70         - string:
71             name: STORE_URL
72             default: gs://artifacts.opnfv.org/dovetail{gs-pathname}
73             description: "LF artifacts url for storage of dovetail packages"
74         - string:
75             name: DOCKER_REPO_NAME
76             default: opnfv/{image}
77             description: "docker repo name"
78         - string:
79             name: DOCKER_TAG
80             default: latest
81             description: "docker image tag of which will be uploaded to artifacts"
82         - string:
83             name: STORE_FILE_NAME
84             default: image_{image}_{branch}_$BUILD_ID.docker
85             description: "stored file name"
86
87 ####################################
88 #builders for dovetail project
89 ####################################
90 - builder:
91     name: dovetail-builder-artifacts-upload
92     builders:
93         - shell:
94             !include-raw: ./dovetail-artifacts-upload.sh
95
96 - builder:
97     name: dovetail-workspace-cleanup
98     builders:
99         - shell: |
100             #!/bin/bash
101             set -o errexit
102
103             echo "Dovetail: cleanup cache used for storage downloaded packages"
104
105             /bin/rm -rf $CACHE_DIR
106
107             # Remove previous running containers if exist
108             if [[ -n "$(docker ps -a | grep $DOCKER_REPO_NAME)" ]]; then
109                 echo "Removing existing $DOCKER_REPO_NAME containers..."
110                 docker ps -a | grep $DOCKER_REPO_NAME | awk '{print $1}' | xargs docker rm -f
111                 t=60
112                 # Wait max 60 sec for containers to be removed
113                 while [[ $t -gt 0 ]] && [[ -n "$(docker ps| grep $DOCKER_REPO_NAME)" ]]; do
114                     sleep 1
115                     let t=t-1
116                 done
117             fi
118
119             # Remove existing images if exist
120             if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then
121                 echo "Docker images to remove:"
122                 docker images | head -1 && docker images | grep $DOCKER_REPO_NAME
123                 image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{print $2}'))
124                 for tag in "${image_tags[@]}"; do
125                     if [[ -n "$(docker images|grep $DOCKER_REPO_NAME|grep $tag)" ]]; then
126                         echo "Removing docker image $DOCKER_REPO_NAME:$tag..."
127                         docker rmi -f $DOCKER_REPO_NAME:$tag
128                     fi
129                 done
130             fi