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 running checkstyle at the end
139 # When checkstyle will be fully incorporated, it is meant to replace
140 # '{project-name}-{stream}-release-java-daily'
142 # The purpose of this job template is to run:
143 # 1. maven clean deploy with Sonar scans
145 # This job publishes checkstyle results.
146 # This job uses a conditional regex match step to set versions.
148 # Required Variables:
149 # branch: git branch (eg. stable/lithium or master)
151 name: '{project-name}-{stream}-release-java-daily-checkstyle'
152 project-type: freestyle
154 disabled: '{disabled}'
155 maven-deploy-properties:
158 build-days-to-keep: '{build-days-to-keep}'
163 refspec: 'refs/heads/{branch}'
164 artifacts: '{archive-artifacts}'
166 maven-version: '{maven-version}'
168 - gerrit-trigger-scm:
170 choosing-strategy: 'default'
171 submodule-recursive: '{submodule-recursive}'
174 build-timeout: '{build-timeout}'
178 - gerrit-trigger-release-manually:
179 server: '{server-name}'
184 - provide-maven-settings:
185 global-settings-file: 'global-settings'
186 settings-file: '{mvn-settings}'
188 condition-kind: regex-match
190 label: '{setVersion}'
193 properties-file: version.properties
194 - maven-set-release-version:
195 maven-version: '{maven-version}'
196 mvn-settings: '{mvn-settings}'
199 maven-version: '{maven-version}'
200 goals: 'clean deploy -B
201 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
202 properties: '{obj:mvn_properties}'
203 settings: '{mvn-settings}'
205 global-settings: 'global-settings'
206 global-settings-type: cfp
209 maven-version: '{maven-version}'
210 - checkstyle-result-daily
213 # Job template for Java daily release jobs
215 # The purpose of this job template is to run:
216 # 1. maven set versions
217 # 2. maven clean deploy with Sonar scans
219 # Required Variables:
220 # branch: git branch (eg. stable/lithium or master)
222 name: '{project-name}-{stream}-release-version-java-daily'
224 project-type: freestyle
225 disabled: '{disabled}'
227 maven-deploy-properties:
230 build-days-to-keep: '{build-days-to-keep}'
236 refspec: 'refs/heads/{branch}'
237 artifacts: '{archive-artifacts}'
239 maven-version: '{maven-version}'
242 - gerrit-trigger-scm:
244 choosing-strategy: 'default'
245 submodule-recursive: '{submodule-recursive}'
249 build-timeout: '{build-timeout}'
254 - gerrit-trigger-release-manually:
255 server: '{server-name}'
261 - provide-maven-settings:
262 global-settings-file: 'global-settings'
263 settings-file: '{mvn-settings}'
266 properties-file: version.properties
267 - maven-set-release-version:
268 maven-version: '{maven-version}'
269 mvn-settings: '{mvn-settings}'
273 maven-version: '{maven-version}'
274 goals: 'clean deploy -B
275 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
277 - '{maven-deploy-properties}'
278 settings: '{mvn-settings}'
280 global-settings: 'global-settings'
281 global-settings-type: cfp
285 maven-version: '{maven-version}'
287 - job-template: &merge_java_defaults
288 # Job template for Java merge jobs
290 # The purpose of this job template is to run:
291 # 1. maven clean deploy
293 # Required Variables:
294 # branch: git branch (eg. stable/lithium or master)
296 name: '{project-name}-{stream}-merge-java'
298 project-type: freestyle
306 java-version: openjdk8
310 build-days-to-keep: '{build-days-to-keep}'
316 refspec: 'refs/heads/{branch}'
317 artifacts: '{archive-artifacts}'
319 maven-version: '{maven-version}'
322 - gerrit-trigger-scm:
324 choosing-strategy: 'default'
325 submodule-recursive: '{submodule-recursive}'
329 build-timeout: '{build-timeout}'
330 jenkins-ssh-credential: '{jenkins-ssh-credential}'
333 - gerrit-trigger-patch-merged:
334 server: '{server-name}'
341 - lf-update-java-alternatives:
342 java-version: "{java-version}"
343 - provide-maven-settings:
344 global-settings-file: 'global-settings'
345 settings-file: '{mvn-settings}'
347 condition-kind: regex-match
348 regex: .*(amd64|arm64).*
349 label: '{project-name}'
351 - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
353 maven-version: '{maven-version}'
355 goals: 'clean deploy -B {mvn-params}
356 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
358 - MAVEN_OPTS='{mvn-opts}'
361 settings: '{mvn-settings}'
363 global-settings: 'global-settings'
364 global-settings-type: cfp
365 properties: '{obj:mvn_properties}'
369 maven-version: '{maven-version}'
372 # Job template for Java merge jobs based on
373 # '{project-name}-{stream}-merge-java'
374 # The purpose of this job template is to run:
375 # 1. maven clean deploy
377 # This project supports maven properties.
379 # Required Variables:
380 # branch: git branch (eg. stable/lithium or master)
381 # maven-properties: properties passed to maven
383 <<: *merge_java_defaults
384 name: '{project-name}-{stream}-merge-properties-java'
388 build-timeout: '{build-timeout}'
389 jenkins-ssh-credential: '{jenkins-ssh-credential}'
392 # Job template for Java merge jobs that takes a maven template
394 # The purpose of this job template is to run:
395 # 1. maven clean deploy -P {mvn-profile}
397 # Required Variables:
398 # branch: git branch (eg. stable/lithium or master)
400 <<: *merge_java_defaults
401 name: '{project-name}-{stream}-merge-profile-java'
405 - provide-maven-settings:
406 global-settings-file: 'global-settings'
407 settings-file: '{mvn-settings}'
412 maven-version: '{maven-version}'
413 goals: 'clean deploy -P {mvn-profile} -B
414 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
415 settings: '{mvn-settings}'
417 global-settings: 'global-settings'
418 global-settings-type: cfp
420 - docker.pull.registry=nexus3.onap.org:10001
421 - docker.push.registry=nexus3.onap.org:10003
424 # Job template for Java merge jobs with POM not at the root
426 # The purpose of this job template is to run:
427 # 1. maven clean deploy
429 # This job supports subprojects.
431 # Required Variables:
432 # branch: git branch (eg. stable/lithium or master)
433 # pom: name/location of the pom.xml file relative to the workspace
434 # pattern: ant file-path pattern relative to the workspace used to
437 <<: *merge_java_defaults
438 name: '{project-name}-{stream}-{subproject}-merge-java'
440 - job-template: &docker_java_defaults
441 # Job template for Docker daily jobs
443 # The purpose of this job template is to run:
444 # 1. login to the docker registry
447 # Required Variables:
448 # branch: git branch (eg. stable/lithium or master)
450 name: '{project-name}-{stream}-docker-java-daily'
451 id: '{project-name}-{stream}-docker-java-daily'
452 project-type: freestyle
454 disabled: '{disabled}'
455 java-version: openjdk8
458 build-days-to-keep: '{build-days-to-keep}'
464 refspec: 'refs/heads/{branch}'
465 artifacts: '{archive-artifacts}'
467 maven-version: '{maven-version}'
469 mvn-params: '{mvn-params}'
472 - gerrit-trigger-scm:
474 choosing-strategy: 'default'
475 submodule-recursive: '{submodule-recursive}'
479 build-timeout: '{build-timeout}'
484 - gerrit-trigger-release-manually:
485 server: '{server-name}'
491 - lf-update-java-alternatives:
492 java-version: "{java-version}"
494 - provide-maven-settings:
495 global-settings-file: 'global-settings'
496 settings-file: '{mvn-settings}'
500 - maven-docker-push-daily:
501 maven-version: '{maven-version}'
502 mvn-settings: '{mvn-settings}'
504 # use default as mvn-profile if profile is not needed
505 mvn-profile: '{mvn-profile}'
506 mvn-params: '{mvn-params}'
510 maven-version: '{maven-version}'
513 # Job template for Docker daily jobs
515 # The purpose of this job template is to run:
516 # 1. login to the docker registry
519 # Required Variables:
520 # branch: git branch (eg. stable/lithium or master)
522 <<: *docker_java_defaults
523 name: '{project-name}-{stream}-docker-java-daily'
524 id: docker-java-daily
527 - infra-wrappers-docker-build:
528 build-timeout: '{build-timeout}'
531 # Job template for building & pushing docker images
533 # The purpose of this job template is to run:
534 # 1. login to the docker registry
535 # 2. run a specified shell builder
537 # Required Variables:
538 # pom: name/location of the pom.xml file relative to the workspace
539 # maven-properties: properties passed to maven
541 name: '{project-name}-{stream}-docker-java-shell-daily'
542 project-type: freestyle
544 disabled: '{disabled}'
547 build-days-to-keep: '{build-days-to-keep}'
553 refspec: 'refs/heads/{branch}'
554 artifacts: '{archive-artifacts}'
556 maven-version: '{maven-version}'
559 - gerrit-trigger-scm:
561 choosing-strategy: 'default'
562 submodule-recursive: '{submodule-recursive}'
566 build-timeout: '{build-timeout}'
571 - gerrit-trigger-release-manually:
572 server: '{server-name}'
578 - provide-maven-settings:
579 global-settings-file: 'global-settings'
580 settings-file: '{mvn-settings}'
585 maven-version: '{maven-version}'
587 settings: '{mvn-settings}'
589 global-settings: 'global-settings'
590 global-settings-type: cfp
596 maven-version: '{maven-version}'
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}-{subproject}-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}'
656 settings: '{mvn-settings}'
658 global-settings: 'global-settings'
659 global-settings-type: cfp
665 maven-version: '{maven-version}'
668 # Job template for building & pushing docker images
670 # The purpose of this job template is to run:
671 # 1. login to the docker registry
672 # 2. inject a version.properties file and set versions
673 # 3. run a specified shell builder
675 # Required Variables:
676 # pom: name/location of the pom.xml file relative to the workspace
677 # maven-properties: properties passed to maven
679 name: '{project-name}-{stream}-docker-java-version-shell-daily'
680 project-type: freestyle
682 disabled: '{disabled}'
685 build-days-to-keep: '{build-days-to-keep}'
691 refspec: 'refs/heads/{branch}'
692 artifacts: '{archive-artifacts}'
694 maven-version: '{maven-version}'
697 - gerrit-trigger-scm:
699 choosing-strategy: 'default'
700 submodule-recursive: '{submodule-recursive}'
704 build-timeout: '{build-timeout}'
709 - gerrit-trigger-release-manually:
710 server: '{server-name}'
716 - provide-maven-settings:
717 global-settings-file: 'global-settings'
718 settings-file: '{mvn-settings}'
721 properties-file: version.properties
722 - maven-set-release-version:
723 maven-version: '{maven-version}'
724 mvn-settings: '{mvn-settings}'
730 maven-version: '{maven-version}'
732 settings: '{mvn-settings}'
734 global-settings: 'global-settings'
735 global-settings-type: cfp
741 maven-version: '{maven-version}'
744 # Job template for building & pushing docker images
746 # The purpose of this job template is to run:
747 # 1. login to the docker registry
748 # 2. inject a version.properties file and set versions
749 # 3. run a specified shell builder
751 # This template supports subprojects.
753 # Required Variables:
754 # pom: name/location of the pom.xml file relative to the workspace
755 # maven-properties: properties passed to maven
757 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
758 project-type: freestyle
759 node: 'ubuntu1804-docker-8c-8g'
760 disabled: '{disabled}'
763 build-days-to-keep: '{build-days-to-keep}'
769 refspec: 'refs/heads/{branch}'
770 artifacts: '{archive-artifacts}'
772 maven-version: '{maven-version}'
775 - gerrit-trigger-scm:
777 choosing-strategy: 'default'
778 submodule-recursive: '{submodule-recursive}'
782 build-timeout: '{build-timeout}'
787 - gerrit-trigger-release-manually:
788 server: '{server-name}'
794 - provide-maven-settings:
795 global-settings-file: 'global-settings'
796 settings-file: '{mvn-settings}'
799 properties-file: version.properties
800 - maven-set-release-version:
801 maven-version: '{maven-version}'
802 mvn-settings: '{mvn-settings}'
808 maven-version: '{maven-version}'
811 settings: '{mvn-settings}'
813 global-settings: 'global-settings'
814 global-settings-type: cfp
820 maven-version: '{maven-version}'
822 - job-template: &docker_version_java_defaults
823 # Job template for building & pushing docker images
825 # The purpose of this job template is to run:
826 # 1. login to the docker registry
827 # 2. inject a version.properties file and set versions
828 # 3. run a docker push
830 # Required Variables:
831 # pom: name/location of the pom.xml file relative to the workspace
832 # profile: the docker profile defined in the pom
833 # maven-properties: properties passed to maven
835 name: '{project-name}-{stream}-docker-version-java-daily'
836 id: '{project-name}-{stream}-docker-version-java-daily'
837 project-type: freestyle
839 disabled: '{disabled}'
842 build-days-to-keep: '{build-days-to-keep}'
848 refspec: 'refs/heads/{branch}'
849 artifacts: '{archive-artifacts}'
851 maven-version: '{maven-version}'
853 mvn-params: '{mvn-params}'
856 - gerrit-trigger-scm:
858 choosing-strategy: 'default'
859 submodule-recursive: '{submodule-recursive}'
863 build-timeout: '{build-timeout}'
868 - gerrit-trigger-release-manually:
869 server: '{server-name}'
875 - provide-maven-settings:
876 global-settings-file: 'global-settings'
877 settings-file: '{mvn-settings}'
880 properties-file: version.properties
881 - maven-set-release-version:
882 maven-version: '{maven-version}'
883 mvn-settings: '{mvn-settings}'
888 - maven-docker-push-daily:
889 maven-version: '{maven-version}'
890 mvn-settings: '{mvn-settings}'
892 # use default as mvn-profile if profile is not needed
893 mvn-profile: '{mvn-profile}'
894 mvn-params: '{mvn-params}'
898 maven-version: '{maven-version}'
901 # Job template for building & pushing docker images
903 # The purpose of this job template is to run:
904 # 1. login to the docker registry
905 # 2. inject a version.properties file and set versions
906 # 3. run a docker push
908 # Required Variables:
909 # pom: name/location of the pom.xml file relative to the workspace
910 # profile: the docker profile defined in the pom
911 # maven-properties: properties passed to maven
913 <<: *docker_version_java_defaults
914 name: '{project-name}-{stream}-docker-version-java-daily'
915 id: 'docker-version-java-daily'
918 - infra-wrappers-docker-build:
919 build-timeout: '{build-timeout}'
922 # Job template for building & pushing docker images for AAI specific repos
924 # The purpose of this job template is to run:
925 # 1. login to the docker registry
927 # 3. run include-docker-push.sh
929 # Required Variables:
930 # pom: name/location of the pom.xml file relative to the workspace
931 # maven-properties: properties passed to maven
933 name: '{project-name}-{stream}-aai-docker-java-daily'
934 project-type: freestyle
936 docker-image-name: ''
937 disabled: '{disabled}'
938 java-version: 'openjdk8'
941 build-days-to-keep: '{build-days-to-keep}'
947 refspec: 'refs/heads/{branch}'
948 artifacts: '{archive-artifacts}'
950 maven-version: '{maven-version}'
952 docker-image-name: '{docker-image-name}'
955 - gerrit-trigger-scm:
957 choosing-strategy: 'default'
958 submodule-recursive: '{submodule-recursive}'
962 build-timeout: '{build-timeout}'
967 - gerrit-trigger-release-manually:
968 server: '{server-name}'
974 - lf-update-java-alternatives:
975 java-version: "{java-version}"
976 - provide-maven-settings:
977 global-settings-file: 'global-settings'
978 settings-file: '{mvn-settings}'
983 maven-version: '{maven-version}'
985 goals: 'clean install -DskipTests -B
986 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
987 settings: '{mvn-settings}'
989 global-settings: 'global-settings'
990 global-settings-type: cfp
993 maven-version: '{maven-version}'
996 settings: '{mvn-settings}'
998 global-settings: 'global-settings'
999 global-settings-type: cfp
1001 - maven.test.skip=true
1002 - docker.pull.registry=nexus3.onap.org:10001
1003 - docker.push.registry=nexus3.onap.org:10003
1005 - shell: !include-raw-escape: include-docker-push.sh
1009 maven-version: '{maven-version}'
1012 # Job template for Java merge jobs for SDC specific repos
1014 # The purpose of this job template is to run:
1015 # 1. maven clean deploy
1017 # Required Variables:
1018 # branch: git branch (eg. stable/lithium or master)
1020 <<: *merge_java_defaults
1021 name: '{project-name}-{stream}-sdc-merge-java'
1023 node: '{build-node}'
1027 - lf-infra-pre-build
1028 - lf-update-java-alternatives:
1029 java-version: "{java-version}"
1030 - provide-maven-settings:
1031 global-settings-file: 'global-settings'
1032 settings-file: '{mvn-settings}'
1036 - maven-docker-push-daily:
1037 maven-version: '{maven-version}'
1038 mvn-settings: '{mvn-settings}'
1040 # use default as mvn-profile if profile is not needed
1041 mvn-profile: '{mvn-profile}'
1045 # Job template for Java merge jobs on multiple architectures
1047 # The purpose of this job template is to:
1048 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1049 # 2. Build and push a docker manifest list for the images created by
1052 name: '{project-name}-multiarch-{stream}-merge-java'
1053 node: '{build-node}'
1054 project-type: multijob
1055 disabled: '{obj:disabled}'
1059 - lf-infra-parameters:
1060 project: '{project}'
1064 name: DOCKER_REGISTRY
1067 name: DOCKERHUB_REGISTRY
1068 default: 'registry-1.docker.io'
1075 use-build-blocker: true
1077 - '{project-name}-.*-merge-.*'
1078 blocking-level: 'NODE'
1081 - gerrit-trigger-scm:
1083 choosing-strategy: 'default'
1084 submodule-recursive: '{submodule-recursive}'
1088 build-timeout: '{build-timeout}'
1091 - gerrit-trigger-patch-merged:
1092 server: '{server-name}'
1093 project: '{project}'
1099 name: 'build docker images'
1101 execution-type: PARALLEL
1103 - name: '{project-name}-amd64-{stream}-merge-java'
1104 kill-phase-on: FAILURE
1105 current-parameters: true
1106 - name: '{project-name}-arm64-{stream}-merge-java'
1107 kill-phase-on: NEVER
1108 current-parameters: true
1110 name: 'publish docker manifest'
1111 condition: SUCCESSFUL
1112 execution-type: PARALLEL
1114 - name: '{project-name}-docker-manifest-{stream}'
1115 current-parameters: true
1116 predefined-parameters: |
1117 PARENT_JOB_NAME=$JOB_NAME
1118 DOCKERHUB_REGISTRY=docker.io