2 - job-template: &verify_java_defaults
3 # Job template for Java verify jobs
5 # The purpose of this job template is to run:
6 # 1. maven clean install
9 # branch: git branch (eg. stable/lithium or master)
11 name: '{project-name}-{stream}-verify-java'
13 project-type: freestyle
16 build-env-variables: ''
21 java-version: openjdk8
24 build-days-to-keep: '{build-days-to-keep}'
30 refspec: 'refs/heads/{branch}'
31 artifacts: '{archive-artifacts}'
33 maven-version: '{maven-version}'
35 mvn-params: '{mvn-params}'
39 refspec: '$GERRIT_REFSPEC'
40 choosing-strategy: 'gerrit'
41 submodule-recursive: '{submodule-recursive}'
45 build-timeout: '{build-timeout}'
48 - gerrit-trigger-patch-submitted:
49 server: '{server-name}'
52 files: '{obj:pattern}'
56 - lf-update-java-alternatives:
57 java-version: "{java-version}"
58 - provide-maven-settings:
59 global-settings-file: 'global-settings'
60 settings-file: '{mvn-settings}'
62 properties-content: "{build-env-variables}"
64 maven-version: '{maven-version}'
66 goals: 'clean install -B
67 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn {mvn-params}'
69 - MAVEN_OPTS='{mvn-opts}'
72 settings: '{mvn-settings}'
74 global-settings: 'global-settings'
75 global-settings-type: cfp
79 maven-version: '{maven-version}'
82 # Job template for Java verify jobs running checkstyle at the end
83 # When checkstyle will be fully incorporated, it is meant to replace
84 # '{project-name}-{stream}-verify-java-checkstyle'
86 # The purpose of this job template is to run:
87 # 1. maven clean install
89 # This job publishes checkstyle results.
92 # branch: git branch (eg. stable/lithium or master)
94 <<: *verify_java_defaults
95 name: '{project-name}-{stream}-verify-java-checkstyle'
98 maven-version: '{maven-version}'
102 # Job template for Java verify jobs with POM not at the root
104 # The purpose of this job template is to run:
105 # 1. maven clean install
107 # This job supports subprojects.
109 # Required Variables:
110 # branch: git branch (eg. stable/lithium or master)
111 # pom: name/location of the pom.xml file relative to the workspace
112 # pattern: ant file-path pattern relative to the workspace used to
115 <<: *verify_java_defaults
116 name: '{project-name}-{stream}-{subproject}-verify-java'
119 # Job template for Java integration pairwise jobs
121 # The purpose of this job template is to run:
122 # 1. maven clean install
124 # Required Variables:
125 # branch: git branch (eg. stable/lithium or master)
127 <<: *verify_java_defaults
128 name: '{project-name}-{stream}-integration-pairwise'
131 - gerrit-trigger-patch-submitted:
132 server: '{server-name}'
135 files: '{obj:pattern}'
138 # Job template for Java daily release jobs
140 # The purpose of this job template is to run:
141 # 1. maven clean deploy with Sonar scans
143 # Required Variables:
144 # branch: git branch (eg. stable/lithium or master)
146 name: '{project-name}-{stream}-release-java-daily'
148 project-type: freestyle
150 disabled: '{disabled}'
151 maven-deploy-properties:
154 build-days-to-keep: '{build-days-to-keep}'
160 refspec: 'refs/heads/{branch}'
161 artifacts: '{archive-artifacts}'
163 maven-version: '{maven-version}'
166 - gerrit-trigger-scm:
168 choosing-strategy: 'default'
169 submodule-recursive: '{submodule-recursive}'
173 build-timeout: '{build-timeout}'
178 - gerrit-trigger-release-manually:
179 server: '{server-name}'
185 - provide-maven-settings:
186 global-settings-file: 'global-settings'
187 settings-file: '{mvn-settings}'
190 maven-version: '{maven-version}'
191 goals: 'clean deploy -B
192 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
194 - '{maven-deploy-properties}'
196 - '-Xmx4096m -XX:MaxPermSize=512m'
197 settings: '{mvn-settings}'
199 global-settings: 'global-settings'
200 global-settings-type: cfp
204 maven-version: '{maven-version}'
207 # Job template for Java daily release jobs running checkstyle at the end
208 # When checkstyle will be fully incorporated, it is meant to replace
209 # '{project-name}-{stream}-release-java-daily'
211 # The purpose of this job template is to run:
212 # 1. maven clean deploy with Sonar scans
214 # This job publishes checkstyle results.
215 # This job uses a conditional regex match step to set versions.
217 # Required Variables:
218 # branch: git branch (eg. stable/lithium or master)
220 name: '{project-name}-{stream}-release-java-daily-checkstyle'
221 project-type: freestyle
223 disabled: '{disabled}'
224 maven-deploy-properties:
227 build-days-to-keep: '{build-days-to-keep}'
232 refspec: 'refs/heads/{branch}'
233 artifacts: '{archive-artifacts}'
235 maven-version: '{maven-version}'
237 - gerrit-trigger-scm:
239 choosing-strategy: 'default'
240 submodule-recursive: '{submodule-recursive}'
243 build-timeout: '{build-timeout}'
247 - gerrit-trigger-release-manually:
248 server: '{server-name}'
253 - provide-maven-settings:
254 global-settings-file: 'global-settings'
255 settings-file: '{mvn-settings}'
257 condition-kind: regex-match
259 label: '{setVersion}'
262 properties-file: version.properties
263 - maven-set-release-version:
264 maven-version: '{maven-version}'
265 mvn-settings: '{mvn-settings}'
268 maven-version: '{maven-version}'
269 goals: 'clean deploy -B
270 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
271 properties: '{obj:mvn_properties}'
272 settings: '{mvn-settings}'
274 global-settings: 'global-settings'
275 global-settings-type: cfp
278 maven-version: '{maven-version}'
279 - checkstyle-result-daily
282 # Job template for Java daily release jobs
284 # The purpose of this job template is to run:
285 # 1. maven set versions
286 # 2. maven clean deploy with Sonar scans
288 # Required Variables:
289 # branch: git branch (eg. stable/lithium or master)
291 name: '{project-name}-{stream}-release-version-java-daily'
293 project-type: freestyle
294 disabled: '{disabled}'
296 maven-deploy-properties:
299 build-days-to-keep: '{build-days-to-keep}'
305 refspec: 'refs/heads/{branch}'
306 artifacts: '{archive-artifacts}'
308 maven-version: '{maven-version}'
311 - gerrit-trigger-scm:
313 choosing-strategy: 'default'
314 submodule-recursive: '{submodule-recursive}'
318 build-timeout: '{build-timeout}'
323 - gerrit-trigger-release-manually:
324 server: '{server-name}'
330 - provide-maven-settings:
331 global-settings-file: 'global-settings'
332 settings-file: '{mvn-settings}'
335 properties-file: version.properties
336 - maven-set-release-version:
337 maven-version: '{maven-version}'
338 mvn-settings: '{mvn-settings}'
342 maven-version: '{maven-version}'
343 goals: 'clean deploy -B
344 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
346 - '{maven-deploy-properties}'
347 settings: '{mvn-settings}'
349 global-settings: 'global-settings'
350 global-settings-type: cfp
354 maven-version: '{maven-version}'
356 - job-template: &merge_java_defaults
357 # Job template for Java merge jobs
359 # The purpose of this job template is to run:
360 # 1. maven clean deploy
362 # Required Variables:
363 # branch: git branch (eg. stable/lithium or master)
365 name: '{project-name}-{stream}-merge-java'
367 project-type: freestyle
375 java-version: openjdk8
379 build-days-to-keep: '{build-days-to-keep}'
385 refspec: 'refs/heads/{branch}'
386 artifacts: '{archive-artifacts}'
388 maven-version: '{maven-version}'
391 - gerrit-trigger-scm:
393 choosing-strategy: 'default'
394 submodule-recursive: '{submodule-recursive}'
398 build-timeout: '{build-timeout}'
401 - gerrit-trigger-patch-merged:
402 server: '{server-name}'
409 - lf-update-java-alternatives:
410 java-version: "{java-version}"
411 - provide-maven-settings:
412 global-settings-file: 'global-settings'
413 settings-file: '{mvn-settings}'
415 condition-kind: regex-match
416 regex: .*(amd64|arm64).*
417 label: '{project-name}'
419 - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
421 maven-version: '{maven-version}'
423 goals: 'clean deploy -B {mvn-params}
424 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
426 - MAVEN_OPTS='{mvn-opts}'
429 settings: '{mvn-settings}'
431 global-settings: 'global-settings'
432 global-settings-type: cfp
433 properties: '{obj:mvn_properties}'
437 maven-version: '{maven-version}'
440 # Job template for Java merge jobs based on
441 # '{project-name}-{stream}-merge-java'
442 # The purpose of this job template is to run:
443 # 1. maven clean deploy
445 # This project supports maven properties.
447 # Required Variables:
448 # branch: git branch (eg. stable/lithium or master)
449 # maven-properties: properties passed to maven
451 <<: *merge_java_defaults
452 name: '{project-name}-{stream}-merge-properties-java'
455 # Job template for Java merge jobs that takes a maven template
457 # The purpose of this job template is to run:
458 # 1. maven clean deploy -P {mvn-profile}
460 # Required Variables:
461 # branch: git branch (eg. stable/lithium or master)
463 <<: *merge_java_defaults
464 name: '{project-name}-{stream}-merge-profile-java'
468 - provide-maven-settings:
469 global-settings-file: 'global-settings'
470 settings-file: '{mvn-settings}'
475 maven-version: '{maven-version}'
476 goals: 'clean deploy -P {mvn-profile} -B
477 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
478 settings: '{mvn-settings}'
480 global-settings: 'global-settings'
481 global-settings-type: cfp
483 - docker.pull.registry=nexus3.onap.org:10001
484 - docker.push.registry=nexus3.onap.org:10003
487 # Job template for Java merge jobs with POM not at the root
489 # The purpose of this job template is to run:
490 # 1. maven clean deploy
492 # This job supports subprojects.
494 # Required Variables:
495 # branch: git branch (eg. stable/lithium or master)
496 # pom: name/location of the pom.xml file relative to the workspace
497 # pattern: ant file-path pattern relative to the workspace used to
500 <<: *merge_java_defaults
501 name: '{project-name}-{stream}-{subproject}-merge-java'
503 - job-template: &docker_java_defaults
504 # Job template for Docker daily jobs
506 # The purpose of this job template is to run:
507 # 1. login to the docker registry
510 # Required Variables:
511 # branch: git branch (eg. stable/lithium or master)
513 name: '{project-name}-{stream}-docker-java-daily'
514 id: '{project-name}-{stream}-docker-java-daily'
515 project-type: freestyle
517 disabled: '{disabled}'
520 build-days-to-keep: '{build-days-to-keep}'
526 refspec: 'refs/heads/{branch}'
527 artifacts: '{archive-artifacts}'
529 maven-version: '{maven-version}'
531 mvn-params: '{mvn-params}'
534 - gerrit-trigger-scm:
536 choosing-strategy: 'default'
537 submodule-recursive: '{submodule-recursive}'
541 build-timeout: '{build-timeout}'
546 - gerrit-trigger-release-manually:
547 server: '{server-name}'
553 - provide-maven-settings:
554 global-settings-file: 'global-settings'
555 settings-file: '{mvn-settings}'
559 - maven-docker-push-daily:
560 maven-version: '{maven-version}'
561 mvn-settings: '{mvn-settings}'
563 # use default as mvn-profile if profile is not needed
564 mvn-profile: '{mvn-profile}'
565 mvn-params: '{mvn-params}'
569 maven-version: '{maven-version}'
572 # Job template for Docker daily jobs
574 # The purpose of this job template is to run:
575 # 1. login to the docker registry
578 # Required Variables:
579 # branch: git branch (eg. stable/lithium or master)
581 <<: *docker_java_defaults
582 name: '{project-name}-{stream}-docker-java-daily'
583 id: docker-java-daily
586 - infra-wrappers-docker-build:
587 build-timeout: '{build-timeout}'
590 # Job template for building & pushing docker images
592 # The purpose of this job template is to run:
593 # 1. login to the docker registry
594 # 2. run a specified shell builder
596 # Required Variables:
597 # pom: name/location of the pom.xml file relative to the workspace
598 # maven-properties: properties passed to maven
600 name: '{project-name}-{stream}-docker-java-shell-daily'
601 project-type: freestyle
603 disabled: '{disabled}'
606 build-days-to-keep: '{build-days-to-keep}'
612 refspec: 'refs/heads/{branch}'
613 artifacts: '{archive-artifacts}'
615 maven-version: '{maven-version}'
618 - gerrit-trigger-scm:
620 choosing-strategy: 'default'
621 submodule-recursive: '{submodule-recursive}'
625 build-timeout: '{build-timeout}'
630 - gerrit-trigger-release-manually:
631 server: '{server-name}'
637 - provide-maven-settings:
638 global-settings-file: 'global-settings'
639 settings-file: '{mvn-settings}'
644 maven-version: '{maven-version}'
646 settings: '{mvn-settings}'
648 global-settings: 'global-settings'
649 global-settings-type: cfp
655 maven-version: '{maven-version}'
658 # Job template for building & pushing docker images
660 # The purpose of this job template is to run:
661 # 1. login to the docker registry
662 # 2. run a specified shell builder
664 # Required Variables:
665 # pom: name/location of the pom.xml file relative to the workspace
666 # maven-properties: properties passed to maven
668 name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
669 project-type: freestyle
671 disabled: '{disabled}'
674 build-days-to-keep: '{build-days-to-keep}'
680 refspec: 'refs/heads/{branch}'
681 artifacts: '{archive-artifacts}'
683 maven-version: '{maven-version}'
686 - gerrit-trigger-scm:
688 choosing-strategy: 'default'
689 submodule-recursive: '{submodule-recursive}'
693 build-timeout: '{build-timeout}'
698 - gerrit-trigger-release-manually:
699 server: '{server-name}'
705 - provide-maven-settings:
706 global-settings-file: 'global-settings'
707 settings-file: '{mvn-settings}'
712 maven-version: '{maven-version}'
715 settings: '{mvn-settings}'
717 global-settings: 'global-settings'
718 global-settings-type: cfp
724 maven-version: '{maven-version}'
727 # Job template for building & pushing docker images
729 # The purpose of this job template is to run:
730 # 1. login to the docker registry
731 # 2. inject a version.properties file and set versions
732 # 3. run a specified shell builder
734 # Required Variables:
735 # pom: name/location of the pom.xml file relative to the workspace
736 # maven-properties: properties passed to maven
738 name: '{project-name}-{stream}-docker-java-version-shell-daily'
739 project-type: freestyle
741 disabled: '{disabled}'
744 build-days-to-keep: '{build-days-to-keep}'
750 refspec: 'refs/heads/{branch}'
751 artifacts: '{archive-artifacts}'
753 maven-version: '{maven-version}'
756 - gerrit-trigger-scm:
758 choosing-strategy: 'default'
759 submodule-recursive: '{submodule-recursive}'
763 build-timeout: '{build-timeout}'
768 - gerrit-trigger-release-manually:
769 server: '{server-name}'
775 - provide-maven-settings:
776 global-settings-file: 'global-settings'
777 settings-file: '{mvn-settings}'
780 properties-file: version.properties
781 - maven-set-release-version:
782 maven-version: '{maven-version}'
783 mvn-settings: '{mvn-settings}'
789 maven-version: '{maven-version}'
791 settings: '{mvn-settings}'
793 global-settings: 'global-settings'
794 global-settings-type: cfp
800 maven-version: '{maven-version}'
803 # Job template for building & pushing docker images
805 # The purpose of this job template is to run:
806 # 1. login to the docker registry
807 # 2. inject a version.properties file and set versions
808 # 3. run a specified shell builder
810 # This template supports subprojects.
812 # Required Variables:
813 # pom: name/location of the pom.xml file relative to the workspace
814 # maven-properties: properties passed to maven
816 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
817 project-type: freestyle
818 node: 'ubuntu1604-docker-8c-8g'
819 disabled: '{disabled}'
822 build-days-to-keep: '{build-days-to-keep}'
828 refspec: 'refs/heads/{branch}'
829 artifacts: '{archive-artifacts}'
831 maven-version: '{maven-version}'
834 - gerrit-trigger-scm:
836 choosing-strategy: 'default'
837 submodule-recursive: '{submodule-recursive}'
841 build-timeout: '{build-timeout}'
846 - gerrit-trigger-release-manually:
847 server: '{server-name}'
853 - provide-maven-settings:
854 global-settings-file: 'global-settings'
855 settings-file: '{mvn-settings}'
858 properties-file: version.properties
859 - maven-set-release-version:
860 maven-version: '{maven-version}'
861 mvn-settings: '{mvn-settings}'
867 maven-version: '{maven-version}'
870 settings: '{mvn-settings}'
872 global-settings: 'global-settings'
873 global-settings-type: cfp
879 maven-version: '{maven-version}'
881 - job-template: &docker_version_java_defaults
882 # Job template for building & pushing docker images
884 # The purpose of this job template is to run:
885 # 1. login to the docker registry
886 # 2. inject a version.properties file and set versions
887 # 3. run a docker push
889 # Required Variables:
890 # pom: name/location of the pom.xml file relative to the workspace
891 # profile: the docker profile defined in the pom
892 # maven-properties: properties passed to maven
894 name: '{project-name}-{stream}-docker-version-java-daily'
895 id: '{project-name}-{stream}-docker-version-java-daily'
896 project-type: freestyle
898 disabled: '{disabled}'
901 build-days-to-keep: '{build-days-to-keep}'
907 refspec: 'refs/heads/{branch}'
908 artifacts: '{archive-artifacts}'
910 maven-version: '{maven-version}'
912 mvn-params: '{mvn-params}'
915 - gerrit-trigger-scm:
917 choosing-strategy: 'default'
918 submodule-recursive: '{submodule-recursive}'
922 build-timeout: '{build-timeout}'
927 - gerrit-trigger-release-manually:
928 server: '{server-name}'
934 - provide-maven-settings:
935 global-settings-file: 'global-settings'
936 settings-file: '{mvn-settings}'
939 properties-file: version.properties
940 - maven-set-release-version:
941 maven-version: '{maven-version}'
942 mvn-settings: '{mvn-settings}'
947 - maven-docker-push-daily:
948 maven-version: '{maven-version}'
949 mvn-settings: '{mvn-settings}'
951 # use default as mvn-profile if profile is not needed
952 mvn-profile: '{mvn-profile}'
953 mvn-params: '{mvn-params}'
957 maven-version: '{maven-version}'
960 # Job template for building & pushing docker images
962 # The purpose of this job template is to run:
963 # 1. login to the docker registry
964 # 2. inject a version.properties file and set versions
965 # 3. run a docker push
967 # Required Variables:
968 # pom: name/location of the pom.xml file relative to the workspace
969 # profile: the docker profile defined in the pom
970 # maven-properties: properties passed to maven
972 <<: *docker_version_java_defaults
973 name: '{project-name}-{stream}-docker-version-java-daily'
974 id: 'docker-version-java-daily'
977 - infra-wrappers-docker-build:
978 build-timeout: '{build-timeout}'
981 # Job template for building & pushing docker images for AAI specific repos
983 # The purpose of this job template is to run:
984 # 1. login to the docker registry
986 # 3. run include-docker-push.sh
988 # Required Variables:
989 # pom: name/location of the pom.xml file relative to the workspace
990 # maven-properties: properties passed to maven
992 name: '{project-name}-{stream}-aai-docker-java-daily'
993 project-type: freestyle
995 docker-image-name: ''
996 disabled: '{disabled}'
999 build-days-to-keep: '{build-days-to-keep}'
1003 project: '{project}'
1005 refspec: 'refs/heads/{branch}'
1006 artifacts: '{archive-artifacts}'
1008 maven-version: '{maven-version}'
1009 - docker-image-name:
1010 docker-image-name: '{docker-image-name}'
1013 - gerrit-trigger-scm:
1015 choosing-strategy: 'default'
1016 submodule-recursive: '{submodule-recursive}'
1020 build-timeout: '{build-timeout}'
1025 - gerrit-trigger-release-manually:
1026 server: '{server-name}'
1027 project: '{project}'
1031 - lf-infra-pre-build
1032 - provide-maven-settings:
1033 global-settings-file: 'global-settings'
1034 settings-file: '{mvn-settings}'
1039 maven-version: '{maven-version}'
1041 goals: 'clean install -DskipTests -B
1042 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1043 settings: '{mvn-settings}'
1045 global-settings: 'global-settings'
1046 global-settings-type: cfp
1049 maven-version: '{maven-version}'
1051 goals: '{mvn-goals}'
1052 settings: '{mvn-settings}'
1054 global-settings: 'global-settings'
1055 global-settings-type: cfp
1057 - maven.test.skip=true
1058 - docker.pull.registry=nexus3.onap.org:10001
1059 - docker.push.registry=nexus3.onap.org:10003
1061 - shell: !include-raw-escape: include-docker-push.sh
1065 maven-version: '{maven-version}'
1068 # Job template for Java merge jobs for SDC specific repos
1070 # The purpose of this job template is to run:
1071 # 1. maven clean deploy
1073 # Required Variables:
1074 # branch: git branch (eg. stable/lithium or master)
1076 <<: *merge_java_defaults
1077 name: '{project-name}-{stream}-sdc-merge-java'
1079 node: '{build-node}'
1083 - lf-infra-pre-build
1084 - provide-maven-settings:
1085 global-settings-file: 'global-settings'
1086 settings-file: '{mvn-settings}'
1090 - maven-docker-push-daily:
1091 maven-version: '{maven-version}'
1092 mvn-settings: '{mvn-settings}'
1094 # use default as mvn-profile if profile is not needed
1095 mvn-profile: '{mvn-profile}'
1099 # Job template for Java merge jobs on multiple architectures
1101 # The purpose of this job template is to:
1102 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1103 # 2. Build and push a docker manifest list for the images created by
1106 name: '{project-name}-multiarch-{stream}-merge-java'
1107 node: '{build-node}'
1108 project-type: multijob
1109 disabled: '{obj:disabled}'
1113 - lf-infra-parameters:
1114 project: '{project}'
1118 name: DOCKER_REGISTRY
1121 name: DOCKERHUB_REGISTRY
1122 default: 'registry-1.docker.io'
1129 use-build-blocker: true
1131 - '{project-name}-.*-merge-.*'
1132 blocking-level: 'NODE'
1135 - gerrit-trigger-scm:
1137 choosing-strategy: 'default'
1138 submodule-recursive: '{submodule-recursive}'
1142 build-timeout: '{build-timeout}'
1145 - gerrit-trigger-patch-merged:
1146 server: '{server-name}'
1147 project: '{project}'
1153 name: 'build docker images'
1155 execution-type: PARALLEL
1157 - name: '{project-name}-amd64-{stream}-merge-java'
1158 kill-phase-on: FAILURE
1159 current-parameters: true
1160 - name: '{project-name}-arm64-{stream}-merge-java'
1161 kill-phase-on: NEVER
1162 current-parameters: true
1164 name: 'publish docker manifest'
1165 condition: SUCCESSFUL
1166 execution-type: PARALLEL
1168 - name: '{project-name}-docker-manifest-{stream}'
1169 current-parameters: true
1170 predefined-parameters: |
1171 PARENT_JOB_NAME=$JOB_NAME
1172 DOCKERHUB_REGISTRY=docker.io