Publish Xtesting daily jobs
[releng.git] / jjb / functest / xtesting.yaml
1 ---
2 - xtesting-jobs: &xtesting-jobs
3     name: 'xtesting-jobs'
4     current-parameters: true
5
6 - xtesting-params: &xtesting-params
7     name: 'xtesting-params'
8     tag:
9       - latest
10       - gambia
11       - hunter
12
13 - parameter:
14     name: xtesting-slave
15     parameters:
16       - label:
17           name: slave
18           default: opnfv-build-ubuntu
19
20 - job-template:
21     name: '{repo}-{container}-{tag}-pull'
22     parameters:
23       - xtesting-slave
24     builders:
25       - shell: |
26           if [ "{port}" = "None" ]; then
27             image={repo}/{container}:{tag}
28           else
29             image={repo}:{port}/{container}:{tag}
30           fi
31           sudo docker pull $image
32
33 - project:
34     name: 'opnfv-xtesting-pull'
35     <<: *xtesting-params
36     repo: 'opnfv'
37     port:
38     container: 'xtesting'
39     jobs:
40       - '{repo}-{container}-{tag}-pull'
41
42 - job-template:
43     name: '{repo}-{container}-{tag}-rmi'
44     parameters:
45       - xtesting-slave
46     builders:
47       - shell: sudo docker rmi {repo}/{container}:{tag} || true
48
49 - project:
50     name: 'opnfv-xtesting-rmi'
51     <<: *xtesting-params
52     repo: 'opnfv'
53     port:
54     container: 'xtesting'
55     jobs:
56       - '{repo}-{container}-{tag}-rmi'
57
58 - job-template:
59     name: '{repo}-{container}-{tag}-{test}-run'
60     parameters:
61       - xtesting-slave
62     builders:
63       - shell: |
64           set +ex
65           rm -rf /var/jenkins_home/workspace/$JOB_NAME/*
66           if [ "{port}" = "None" ]; then
67             image={repo}/{container}:{tag}
68           else
69             image={repo}:{port}/{container}:{tag}
70           fi
71           sudo docker run --rm \
72             --link testapi:testapi \
73             -v /data/jenkins/workspace/$JOB_NAME/results:/var/lib/xtesting/results \
74             $image run_tests -t {test}
75           res=$?
76           gsutil -m cp -r /var/jenkins_home/workspace/$JOB_NAME/ \
77             gs://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID > /dev/null
78           find /var/jenkins_home/workspace/$JOB_NAME/ -type f \
79             -printf \
80             "http://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID/%P\n"
81           exit $res
82
83 - project:
84     name: 'opnfv-xtesting'
85     <<: *xtesting-params
86     repo: 'opnfv'
87     port:
88     container: 'xtesting'
89     test:
90       - first
91       - second
92       - third
93       - fourth
94       - fifth
95     jobs:
96       - '{repo}-{container}-{tag}-{test}-run'
97
98 - job-template:
99     name: 'xtesting-{tag}'
100     project-type: multijob
101     triggers:
102       - timed: '@daily'
103     parameters:
104       - xtesting-slave
105     properties:
106       - build-blocker:
107           use-build-blocker: true
108           blocking-level: 'NODE'
109           blocking-jobs:
110             - 'xtesting-.*'
111     builders:
112       - multijob:
113           name: remove former images
114           projects:
115             - name: 'opnfv-xtesting-{tag}-rmi'
116       - multijob:
117           name: pull containers
118           projects:
119             - name: 'opnfv-xtesting-{tag}-pull'
120       - multijob:
121           name: opnfv/xtesting:{tag}
122           projects:
123             - name: 'opnfv-xtesting-{tag}-first-run'
124               <<: *xtesting-jobs
125             - name: 'opnfv-xtesting-{tag}-second-run'
126               <<: *xtesting-jobs
127             - name: 'opnfv-xtesting-{tag}-third-run'
128               <<: *xtesting-jobs
129             - name: 'opnfv-xtesting-{tag}-fourth-run'
130               <<: *xtesting-jobs
131             - name: 'opnfv-xtesting-{tag}-fifth-run'
132               <<: *xtesting-jobs
133
134 - project:
135     name: 'xtesting'
136     <<: *xtesting-params
137     jobs:
138       - 'xtesting-{tag}'
139
140 - view:
141     name: xtesting
142     view-type: list
143     columns:
144       - status
145       - weather
146       - job
147       - last-success
148       - last-failure
149       - last-duration
150     regex: xtesting-.*