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'
456 build-timeout: '{build-timeout}'
457 jenkins-ssh-credential: '{jenkins-ssh-credential}'
460 # Job template for Java merge jobs that takes a maven template
462 # The purpose of this job template is to run:
463 # 1. maven clean deploy -P {mvn-profile}
465 # Required Variables:
466 # branch: git branch (eg. stable/lithium or master)
468 <<: *merge_java_defaults
469 name: '{project-name}-{stream}-merge-profile-java'
473 - provide-maven-settings:
474 global-settings-file: 'global-settings'
475 settings-file: '{mvn-settings}'
480 maven-version: '{maven-version}'
481 goals: 'clean deploy -P {mvn-profile} -B
482 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
483 settings: '{mvn-settings}'
485 global-settings: 'global-settings'
486 global-settings-type: cfp
488 - docker.pull.registry=nexus3.onap.org:10001
489 - docker.push.registry=nexus3.onap.org:10003
492 # Job template for Java merge jobs with POM not at the root
494 # The purpose of this job template is to run:
495 # 1. maven clean deploy
497 # This job supports subprojects.
499 # Required Variables:
500 # branch: git branch (eg. stable/lithium or master)
501 # pom: name/location of the pom.xml file relative to the workspace
502 # pattern: ant file-path pattern relative to the workspace used to
505 <<: *merge_java_defaults
506 name: '{project-name}-{stream}-{subproject}-merge-java'
508 - job-template: &docker_java_defaults
509 # Job template for Docker daily jobs
511 # The purpose of this job template is to run:
512 # 1. login to the docker registry
515 # Required Variables:
516 # branch: git branch (eg. stable/lithium or master)
518 name: '{project-name}-{stream}-docker-java-daily'
519 id: '{project-name}-{stream}-docker-java-daily'
520 project-type: freestyle
522 disabled: '{disabled}'
523 java-version: openjdk8
526 build-days-to-keep: '{build-days-to-keep}'
532 refspec: 'refs/heads/{branch}'
533 artifacts: '{archive-artifacts}'
535 maven-version: '{maven-version}'
537 mvn-params: '{mvn-params}'
540 - gerrit-trigger-scm:
542 choosing-strategy: 'default'
543 submodule-recursive: '{submodule-recursive}'
547 build-timeout: '{build-timeout}'
552 - gerrit-trigger-release-manually:
553 server: '{server-name}'
559 - lf-update-java-alternatives:
560 java-version: "{java-version}"
562 - provide-maven-settings:
563 global-settings-file: 'global-settings'
564 settings-file: '{mvn-settings}'
568 - maven-docker-push-daily:
569 maven-version: '{maven-version}'
570 mvn-settings: '{mvn-settings}'
572 # use default as mvn-profile if profile is not needed
573 mvn-profile: '{mvn-profile}'
574 mvn-params: '{mvn-params}'
578 maven-version: '{maven-version}'
581 # Job template for Docker daily jobs
583 # The purpose of this job template is to run:
584 # 1. login to the docker registry
587 # Required Variables:
588 # branch: git branch (eg. stable/lithium or master)
590 <<: *docker_java_defaults
591 name: '{project-name}-{stream}-docker-java-daily'
592 id: docker-java-daily
595 - infra-wrappers-docker-build:
596 build-timeout: '{build-timeout}'
599 # Job template for building & pushing docker images
601 # The purpose of this job template is to run:
602 # 1. login to the docker registry
603 # 2. run a specified shell builder
605 # Required Variables:
606 # pom: name/location of the pom.xml file relative to the workspace
607 # maven-properties: properties passed to maven
609 name: '{project-name}-{stream}-docker-java-shell-daily'
610 project-type: freestyle
612 disabled: '{disabled}'
615 build-days-to-keep: '{build-days-to-keep}'
621 refspec: 'refs/heads/{branch}'
622 artifacts: '{archive-artifacts}'
624 maven-version: '{maven-version}'
627 - gerrit-trigger-scm:
629 choosing-strategy: 'default'
630 submodule-recursive: '{submodule-recursive}'
634 build-timeout: '{build-timeout}'
639 - gerrit-trigger-release-manually:
640 server: '{server-name}'
646 - provide-maven-settings:
647 global-settings-file: 'global-settings'
648 settings-file: '{mvn-settings}'
653 maven-version: '{maven-version}'
655 settings: '{mvn-settings}'
657 global-settings: 'global-settings'
658 global-settings-type: cfp
664 maven-version: '{maven-version}'
667 # Job template for building & pushing docker images
669 # The purpose of this job template is to run:
670 # 1. login to the docker registry
671 # 2. run a specified shell builder
673 # Required Variables:
674 # pom: name/location of the pom.xml file relative to the workspace
675 # maven-properties: properties passed to maven
677 name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
678 project-type: freestyle
680 disabled: '{disabled}'
683 build-days-to-keep: '{build-days-to-keep}'
689 refspec: 'refs/heads/{branch}'
690 artifacts: '{archive-artifacts}'
692 maven-version: '{maven-version}'
695 - gerrit-trigger-scm:
697 choosing-strategy: 'default'
698 submodule-recursive: '{submodule-recursive}'
702 build-timeout: '{build-timeout}'
707 - gerrit-trigger-release-manually:
708 server: '{server-name}'
714 - provide-maven-settings:
715 global-settings-file: 'global-settings'
716 settings-file: '{mvn-settings}'
721 maven-version: '{maven-version}'
724 settings: '{mvn-settings}'
726 global-settings: 'global-settings'
727 global-settings-type: cfp
733 maven-version: '{maven-version}'
736 # Job template for building & pushing docker images
738 # The purpose of this job template is to run:
739 # 1. login to the docker registry
740 # 2. inject a version.properties file and set versions
741 # 3. run a specified shell builder
743 # Required Variables:
744 # pom: name/location of the pom.xml file relative to the workspace
745 # maven-properties: properties passed to maven
747 name: '{project-name}-{stream}-docker-java-version-shell-daily'
748 project-type: freestyle
750 disabled: '{disabled}'
753 build-days-to-keep: '{build-days-to-keep}'
759 refspec: 'refs/heads/{branch}'
760 artifacts: '{archive-artifacts}'
762 maven-version: '{maven-version}'
765 - gerrit-trigger-scm:
767 choosing-strategy: 'default'
768 submodule-recursive: '{submodule-recursive}'
772 build-timeout: '{build-timeout}'
777 - gerrit-trigger-release-manually:
778 server: '{server-name}'
784 - provide-maven-settings:
785 global-settings-file: 'global-settings'
786 settings-file: '{mvn-settings}'
789 properties-file: version.properties
790 - maven-set-release-version:
791 maven-version: '{maven-version}'
792 mvn-settings: '{mvn-settings}'
798 maven-version: '{maven-version}'
800 settings: '{mvn-settings}'
802 global-settings: 'global-settings'
803 global-settings-type: cfp
809 maven-version: '{maven-version}'
812 # Job template for building & pushing docker images
814 # The purpose of this job template is to run:
815 # 1. login to the docker registry
816 # 2. inject a version.properties file and set versions
817 # 3. run a specified shell builder
819 # This template supports subprojects.
821 # Required Variables:
822 # pom: name/location of the pom.xml file relative to the workspace
823 # maven-properties: properties passed to maven
825 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
826 project-type: freestyle
827 node: 'ubuntu1804-docker-8c-8g'
828 disabled: '{disabled}'
831 build-days-to-keep: '{build-days-to-keep}'
837 refspec: 'refs/heads/{branch}'
838 artifacts: '{archive-artifacts}'
840 maven-version: '{maven-version}'
843 - gerrit-trigger-scm:
845 choosing-strategy: 'default'
846 submodule-recursive: '{submodule-recursive}'
850 build-timeout: '{build-timeout}'
855 - gerrit-trigger-release-manually:
856 server: '{server-name}'
862 - provide-maven-settings:
863 global-settings-file: 'global-settings'
864 settings-file: '{mvn-settings}'
867 properties-file: version.properties
868 - maven-set-release-version:
869 maven-version: '{maven-version}'
870 mvn-settings: '{mvn-settings}'
876 maven-version: '{maven-version}'
879 settings: '{mvn-settings}'
881 global-settings: 'global-settings'
882 global-settings-type: cfp
888 maven-version: '{maven-version}'
890 - job-template: &docker_version_java_defaults
891 # Job template for building & pushing docker images
893 # The purpose of this job template is to run:
894 # 1. login to the docker registry
895 # 2. inject a version.properties file and set versions
896 # 3. run a docker push
898 # Required Variables:
899 # pom: name/location of the pom.xml file relative to the workspace
900 # profile: the docker profile defined in the pom
901 # maven-properties: properties passed to maven
903 name: '{project-name}-{stream}-docker-version-java-daily'
904 id: '{project-name}-{stream}-docker-version-java-daily'
905 project-type: freestyle
907 disabled: '{disabled}'
910 build-days-to-keep: '{build-days-to-keep}'
916 refspec: 'refs/heads/{branch}'
917 artifacts: '{archive-artifacts}'
919 maven-version: '{maven-version}'
921 mvn-params: '{mvn-params}'
924 - gerrit-trigger-scm:
926 choosing-strategy: 'default'
927 submodule-recursive: '{submodule-recursive}'
931 build-timeout: '{build-timeout}'
936 - gerrit-trigger-release-manually:
937 server: '{server-name}'
943 - provide-maven-settings:
944 global-settings-file: 'global-settings'
945 settings-file: '{mvn-settings}'
948 properties-file: version.properties
949 - maven-set-release-version:
950 maven-version: '{maven-version}'
951 mvn-settings: '{mvn-settings}'
956 - maven-docker-push-daily:
957 maven-version: '{maven-version}'
958 mvn-settings: '{mvn-settings}'
960 # use default as mvn-profile if profile is not needed
961 mvn-profile: '{mvn-profile}'
962 mvn-params: '{mvn-params}'
966 maven-version: '{maven-version}'
969 # Job template for building & pushing docker images
971 # The purpose of this job template is to run:
972 # 1. login to the docker registry
973 # 2. inject a version.properties file and set versions
974 # 3. run a docker push
976 # Required Variables:
977 # pom: name/location of the pom.xml file relative to the workspace
978 # profile: the docker profile defined in the pom
979 # maven-properties: properties passed to maven
981 <<: *docker_version_java_defaults
982 name: '{project-name}-{stream}-docker-version-java-daily'
983 id: 'docker-version-java-daily'
986 - infra-wrappers-docker-build:
987 build-timeout: '{build-timeout}'
990 # Job template for building & pushing docker images for AAI specific repos
992 # The purpose of this job template is to run:
993 # 1. login to the docker registry
995 # 3. run include-docker-push.sh
997 # Required Variables:
998 # pom: name/location of the pom.xml file relative to the workspace
999 # maven-properties: properties passed to maven
1001 name: '{project-name}-{stream}-aai-docker-java-daily'
1002 project-type: freestyle
1003 node: '{build-node}'
1004 docker-image-name: ''
1005 disabled: '{disabled}'
1008 build-days-to-keep: '{build-days-to-keep}'
1012 project: '{project}'
1014 refspec: 'refs/heads/{branch}'
1015 artifacts: '{archive-artifacts}'
1017 maven-version: '{maven-version}'
1018 - docker-image-name:
1019 docker-image-name: '{docker-image-name}'
1022 - gerrit-trigger-scm:
1024 choosing-strategy: 'default'
1025 submodule-recursive: '{submodule-recursive}'
1029 build-timeout: '{build-timeout}'
1034 - gerrit-trigger-release-manually:
1035 server: '{server-name}'
1036 project: '{project}'
1040 - lf-infra-pre-build
1041 - provide-maven-settings:
1042 global-settings-file: 'global-settings'
1043 settings-file: '{mvn-settings}'
1048 maven-version: '{maven-version}'
1050 goals: 'clean install -DskipTests -B
1051 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1052 settings: '{mvn-settings}'
1054 global-settings: 'global-settings'
1055 global-settings-type: cfp
1058 maven-version: '{maven-version}'
1060 goals: '{mvn-goals}'
1061 settings: '{mvn-settings}'
1063 global-settings: 'global-settings'
1064 global-settings-type: cfp
1066 - maven.test.skip=true
1067 - docker.pull.registry=nexus3.onap.org:10001
1068 - docker.push.registry=nexus3.onap.org:10003
1070 - shell: !include-raw-escape: include-docker-push.sh
1074 maven-version: '{maven-version}'
1077 # Job template for Java merge jobs for SDC specific repos
1079 # The purpose of this job template is to run:
1080 # 1. maven clean deploy
1082 # Required Variables:
1083 # branch: git branch (eg. stable/lithium or master)
1085 <<: *merge_java_defaults
1086 name: '{project-name}-{stream}-sdc-merge-java'
1088 node: '{build-node}'
1092 - lf-infra-pre-build
1093 - provide-maven-settings:
1094 global-settings-file: 'global-settings'
1095 settings-file: '{mvn-settings}'
1099 - maven-docker-push-daily:
1100 maven-version: '{maven-version}'
1101 mvn-settings: '{mvn-settings}'
1103 # use default as mvn-profile if profile is not needed
1104 mvn-profile: '{mvn-profile}'
1108 # Job template for Java merge jobs on multiple architectures
1110 # The purpose of this job template is to:
1111 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1112 # 2. Build and push a docker manifest list for the images created by
1115 name: '{project-name}-multiarch-{stream}-merge-java'
1116 node: '{build-node}'
1117 project-type: multijob
1118 disabled: '{obj:disabled}'
1122 - lf-infra-parameters:
1123 project: '{project}'
1127 name: DOCKER_REGISTRY
1130 name: DOCKERHUB_REGISTRY
1131 default: 'registry-1.docker.io'
1138 use-build-blocker: true
1140 - '{project-name}-.*-merge-.*'
1141 blocking-level: 'NODE'
1144 - gerrit-trigger-scm:
1146 choosing-strategy: 'default'
1147 submodule-recursive: '{submodule-recursive}'
1151 build-timeout: '{build-timeout}'
1154 - gerrit-trigger-patch-merged:
1155 server: '{server-name}'
1156 project: '{project}'
1162 name: 'build docker images'
1164 execution-type: PARALLEL
1166 - name: '{project-name}-amd64-{stream}-merge-java'
1167 kill-phase-on: FAILURE
1168 current-parameters: true
1169 - name: '{project-name}-arm64-{stream}-merge-java'
1170 kill-phase-on: NEVER
1171 current-parameters: true
1173 name: 'publish docker manifest'
1174 condition: SUCCESSFUL
1175 execution-type: PARALLEL
1177 - name: '{project-name}-docker-manifest-{stream}'
1178 current-parameters: true
1179 predefined-parameters: |
1180 PARENT_JOB_NAME=$JOB_NAME
1181 DOCKERHUB_REGISTRY=docker.io