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