5efd2ac6ea647b9b90ce6f8750a3541d03a94982
[ci-management.git] / jjb / akraino-templates / akraino-validation-templates.yaml
1 ---
2 ############
3 # SETTINGS #
4 ############
5 # settings for jobs run in multijob phases
6 - _docker-build-job-settings: &docker-build-job-settings
7     name: docker_build_job_settings
8     current-parameters: true
9     git-revision: false
10     node-parameters: false
11     kill-phase-on: FAILURE
12     abort-all-jobs: false
13
14 #############
15 # TEMPLATES #
16 #############
17 - job-template:
18     id: akraino-validation-docker-multiarch
19     name: "validation-{stream}-docker"
20     project-type: multijob
21     disabled: "{obj:disabled}"
22     node: "centos7-builder-2c-1g"
23     build-timeout: 90
24
25     parameters:
26       - lf-infra-parameters: &validation_lf_infra_parameters
27           project: "{project}"
28           branch: "{branch}"
29           stream: "{stream}"
30
31     properties:
32       - throttle:
33           max-per-node: 1
34           option: "project"
35       - build-blocker:
36           use-build-blocker: true
37           blocking-jobs:
38             - "validation-docker-.*"
39           block-level: "NODE"
40
41     triggers: "{obj:triggers}"
42
43     builders:
44       - multijob:
45           name: "build validation images"
46           execution-type: PARALLEL
47           projects:
48             - name: "validation-docker-build-amd64-{stream}"
49               <<: *docker-build-job-settings
50             - name: "validation-docker-build-arm64-{stream}"
51               <<: *docker-build-job-settings
52       - multijob:
53           name: "publish validation manifests"
54           condition: SUCCESSFUL
55           execution-type: PARALLEL
56           projects:
57             - name: "validation-docker-manifest-{stream}"
58               <<: *docker-build-job-settings
59
60     publishers:
61       - lf-infra-publish
62       - email:
63           recipients: >
64             cristina.pauna@enea.com
65             juha.kosonen@nokia.com
66
67 - job-template:
68     id: akraino-validation-docker-specific-arch
69     name: "validation-docker-build-{arch_tag}-{stream}"
70     disabled: "{obj:disabled}"
71     node: "{slave_label}"
72     build-timeout: 75
73
74     parameters:
75       - lf-infra-parameters: *validation_lf_infra_parameters
76
77     properties:
78       - build-blocker:
79           use-build-blocker: true
80           blocking-jobs:
81             - "validation-docker-build-.*"
82           block-level: "NODE"
83     scm: &validation_scm
84       # lf-infra-gerrit-scm hardcodes branch specifier to refs/heads; while
85       # lf-infra-github-scm does not, allowing us to pass a fully custom '{branch}'
86       - lf-infra-github-scm:
87           jenkins-ssh-credential: "{jenkins-ssh-credential}"
88           url: "{git-url}/{project}.git"
89           refspec: "$GERRIT_REFSPEC"
90           branch: "$STREAM"
91           submodule-recursive: false
92           submodule-timeout: "{submodule-timeout}"
93           submodule-disable: false
94           choosing-strategy: default
95
96     builders:
97       - lf-infra-docker-login:
98           global-settings-file: global-settings
99           settings-file: "{mvn-settings}"
100       - shell: |
101           #!/bin/bash -ex
102           if [ "{branch}" != "{stream}" ]; then export TAG_VER=$STREAM; fi
103           make -k -C docker push-all
104           docker system prune -af
105
106     publishers:
107       - lf-infra-publish
108
109 - job-template:
110     id: akraino-validation-docker-manifest
111     name: "validation-docker-manifest-{stream}"
112     node: "ubuntu1804-docker-8c-8g"
113     build-timeout: 15
114
115     parameters:
116       - lf-infra-parameters: *validation_lf_infra_parameters
117
118     disabled: "{obj:disabled}"
119
120     scm: *validation_scm
121
122     builders:
123       - lf-infra-docker-login:
124           global-settings-file: global-settings
125           settings-file: "{mvn-settings}"
126       - shell: |
127           #!/bin/bash -ex
128           if [ "{branch}" != "{stream}" ]; then export TAG_VER=$STREAM; fi
129           for sd in docker/*/.; do make -k -C $sd .push_manifest; done
130
131     publishers:
132       - lf-infra-publish
133
134 - job-template:
135     id: akraino-validation-lab-daily
136     name: "validation-{validation_lab}-daily-{stream}"
137     concurrent: true
138     node: "{build-node}"
139     parameters:
140       - lab_params
141     builders:
142       - trigger-builds:
143           - project: "bluval-daily-{stream}"
144             predefined-parameters: LAB_SILO={validation_lab}
145             same-node: true
146             current-parameters: true
147             block: true
148
149     publishers:
150       - lf-infra-publish
151
152 - job-template:
153     id: bluval-run-daily-tests
154     name: "bluval-daily-{stream}"
155     concurrent: true
156     node: "{build-node}"
157     lab-silo: ""
158     parameters:
159       - lf-infra-parameters: *validation_lf_infra_parameters
160       - string:
161           name: DEPLOY_SCENARIO
162           default: ""
163       - bluval-defaults:
164           lab-silo: "{lab-silo}"
165
166     scm:
167       - lf-infra-github-scm:
168           jenkins-ssh-credential: "{jenkins-ssh-credential}"
169           url: "{git-url}/{project}.git"
170           refspec: "$GERRIT_REFSPEC"
171           branch: "$GERRIT_BRANCH"
172           submodule-recursive: false
173           submodule-timeout: "{submodule-timeout}"
174           submodule-disable: true
175           choosing-strategy: default
176
177     builders:
178       - description-setter:
179           description: "POD: $NODE_NAME<br/>BLUEPRINT: $BLUEPRINT<br/>LAB: $LAB_SILO<br/>LAYER: $LAYER"
180       - lf-infra-create-netrc:
181           server-id: logs
182       - shell: !include-raw-escape:
183           - ../shell/run_bluval.sh
184
185     publishers:
186       - lf-infra-publish
187       - robot:
188           output-path: "results"
189           report-html: "**/report.html"
190           log-html: "**/log.html"
191           output-xml: "**/output.xml"
192       - logparser:
193           use-project-rules: true
194           parse-rules: "./bluval/rules.txt"
195           unstable-on-warning: false
196           fail-on-error: true
197           show-graphs: true