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}'
332 - gerrit-trigger-patch-merged:
333 server: '{server-name}'
340 - lf-update-java-alternatives:
341 java-version: "{java-version}"
342 - provide-maven-settings:
343 global-settings-file: 'global-settings'
344 settings-file: '{mvn-settings}'
346 condition-kind: regex-match
347 regex: .*(amd64|arm64).*
348 label: '{project-name}'
350 - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
352 maven-version: '{maven-version}'
354 goals: 'clean deploy -B {mvn-params}
355 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
357 - MAVEN_OPTS='{mvn-opts}'
360 settings: '{mvn-settings}'
362 global-settings: 'global-settings'
363 global-settings-type: cfp
364 properties: '{obj:mvn_properties}'
368 maven-version: '{maven-version}'
371 # Job template for Java merge jobs based on
372 # '{project-name}-{stream}-merge-java'
373 # The purpose of this job template is to run:
374 # 1. maven clean deploy
376 # This project supports maven properties.
378 # Required Variables:
379 # branch: git branch (eg. stable/lithium or master)
380 # maven-properties: properties passed to maven
382 <<: *merge_java_defaults
383 name: '{project-name}-{stream}-merge-properties-java'
387 build-timeout: '{build-timeout}'
388 jenkins-ssh-credential: '{jenkins-ssh-credential}'
391 # Job template for Java merge jobs that takes a maven template
393 # The purpose of this job template is to run:
394 # 1. maven clean deploy -P {mvn-profile}
396 # Required Variables:
397 # branch: git branch (eg. stable/lithium or master)
399 <<: *merge_java_defaults
400 name: '{project-name}-{stream}-merge-profile-java'
404 - provide-maven-settings:
405 global-settings-file: 'global-settings'
406 settings-file: '{mvn-settings}'
411 maven-version: '{maven-version}'
412 goals: 'clean deploy -P {mvn-profile} -B
413 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
414 settings: '{mvn-settings}'
416 global-settings: 'global-settings'
417 global-settings-type: cfp
419 - docker.pull.registry=nexus3.onap.org:10001
420 - docker.push.registry=nexus3.onap.org:10003
423 # Job template for Java merge jobs with POM not at the root
425 # The purpose of this job template is to run:
426 # 1. maven clean deploy
428 # This job supports subprojects.
430 # Required Variables:
431 # branch: git branch (eg. stable/lithium or master)
432 # pom: name/location of the pom.xml file relative to the workspace
433 # pattern: ant file-path pattern relative to the workspace used to
436 <<: *merge_java_defaults
437 name: '{project-name}-{stream}-{subproject}-merge-java'
439 - job-template: &docker_java_defaults
440 # Job template for Docker daily jobs
442 # The purpose of this job template is to run:
443 # 1. login to the docker registry
446 # Required Variables:
447 # branch: git branch (eg. stable/lithium or master)
449 name: '{project-name}-{stream}-docker-java-daily'
450 id: '{project-name}-{stream}-docker-java-daily'
451 project-type: freestyle
453 disabled: '{disabled}'
454 java-version: openjdk8
457 build-days-to-keep: '{build-days-to-keep}'
463 refspec: 'refs/heads/{branch}'
464 artifacts: '{archive-artifacts}'
466 maven-version: '{maven-version}'
468 mvn-params: '{mvn-params}'
471 - gerrit-trigger-scm:
473 choosing-strategy: 'default'
474 submodule-recursive: '{submodule-recursive}'
478 build-timeout: '{build-timeout}'
483 - gerrit-trigger-release-manually:
484 server: '{server-name}'
490 - lf-update-java-alternatives:
491 java-version: "{java-version}"
493 - provide-maven-settings:
494 global-settings-file: 'global-settings'
495 settings-file: '{mvn-settings}'
499 - maven-docker-push-daily:
500 maven-version: '{maven-version}'
501 mvn-settings: '{mvn-settings}'
503 # use default as mvn-profile if profile is not needed
504 mvn-profile: '{mvn-profile}'
505 mvn-params: '{mvn-params}'
509 maven-version: '{maven-version}'
512 # Job template for Docker daily jobs
514 # The purpose of this job template is to run:
515 # 1. login to the docker registry
518 # Required Variables:
519 # branch: git branch (eg. stable/lithium or master)
521 <<: *docker_java_defaults
522 name: '{project-name}-{stream}-docker-java-daily'
523 id: docker-java-daily
526 - infra-wrappers-docker-build:
527 build-timeout: '{build-timeout}'
530 # Job template for building & pushing docker images
532 # The purpose of this job template is to run:
533 # 1. login to the docker registry
534 # 2. run a specified shell builder
536 # Required Variables:
537 # pom: name/location of the pom.xml file relative to the workspace
538 # maven-properties: properties passed to maven
540 name: '{project-name}-{stream}-docker-java-shell-daily'
541 project-type: freestyle
543 disabled: '{disabled}'
546 build-days-to-keep: '{build-days-to-keep}'
552 refspec: 'refs/heads/{branch}'
553 artifacts: '{archive-artifacts}'
555 maven-version: '{maven-version}'
558 - gerrit-trigger-scm:
560 choosing-strategy: 'default'
561 submodule-recursive: '{submodule-recursive}'
565 build-timeout: '{build-timeout}'
570 - gerrit-trigger-release-manually:
571 server: '{server-name}'
577 - provide-maven-settings:
578 global-settings-file: 'global-settings'
579 settings-file: '{mvn-settings}'
584 maven-version: '{maven-version}'
586 settings: '{mvn-settings}'
588 global-settings: 'global-settings'
589 global-settings-type: cfp
595 maven-version: '{maven-version}'
598 # Job template for building & pushing docker images
600 # The purpose of this job template is to run:
601 # 1. login to the docker registry
602 # 2. run a specified shell builder
604 # Required Variables:
605 # pom: name/location of the pom.xml file relative to the workspace
606 # maven-properties: properties passed to maven
608 name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
609 project-type: freestyle
611 disabled: '{disabled}'
614 build-days-to-keep: '{build-days-to-keep}'
620 refspec: 'refs/heads/{branch}'
621 artifacts: '{archive-artifacts}'
623 maven-version: '{maven-version}'
626 - gerrit-trigger-scm:
628 choosing-strategy: 'default'
629 submodule-recursive: '{submodule-recursive}'
633 build-timeout: '{build-timeout}'
638 - gerrit-trigger-release-manually:
639 server: '{server-name}'
645 - provide-maven-settings:
646 global-settings-file: 'global-settings'
647 settings-file: '{mvn-settings}'
652 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. inject a version.properties file and set versions
672 # 3. run a specified shell builder
674 # Required Variables:
675 # pom: name/location of the pom.xml file relative to the workspace
676 # maven-properties: properties passed to maven
678 name: '{project-name}-{stream}-docker-java-version-shell-daily'
679 project-type: freestyle
681 disabled: '{disabled}'
684 build-days-to-keep: '{build-days-to-keep}'
690 refspec: 'refs/heads/{branch}'
691 artifacts: '{archive-artifacts}'
693 maven-version: '{maven-version}'
696 - gerrit-trigger-scm:
698 choosing-strategy: 'default'
699 submodule-recursive: '{submodule-recursive}'
703 build-timeout: '{build-timeout}'
708 - gerrit-trigger-release-manually:
709 server: '{server-name}'
715 - provide-maven-settings:
716 global-settings-file: 'global-settings'
717 settings-file: '{mvn-settings}'
720 properties-file: version.properties
721 - maven-set-release-version:
722 maven-version: '{maven-version}'
723 mvn-settings: '{mvn-settings}'
729 maven-version: '{maven-version}'
731 settings: '{mvn-settings}'
733 global-settings: 'global-settings'
734 global-settings-type: cfp
740 maven-version: '{maven-version}'
743 # Job template for building & pushing docker images
745 # The purpose of this job template is to run:
746 # 1. login to the docker registry
747 # 2. inject a version.properties file and set versions
748 # 3. run a specified shell builder
750 # This template supports subprojects.
752 # Required Variables:
753 # pom: name/location of the pom.xml file relative to the workspace
754 # maven-properties: properties passed to maven
756 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
757 project-type: freestyle
758 node: 'ubuntu1804-docker-8c-8g'
759 disabled: '{disabled}'
762 build-days-to-keep: '{build-days-to-keep}'
768 refspec: 'refs/heads/{branch}'
769 artifacts: '{archive-artifacts}'
771 maven-version: '{maven-version}'
774 - gerrit-trigger-scm:
776 choosing-strategy: 'default'
777 submodule-recursive: '{submodule-recursive}'
781 build-timeout: '{build-timeout}'
786 - gerrit-trigger-release-manually:
787 server: '{server-name}'
793 - provide-maven-settings:
794 global-settings-file: 'global-settings'
795 settings-file: '{mvn-settings}'
798 properties-file: version.properties
799 - maven-set-release-version:
800 maven-version: '{maven-version}'
801 mvn-settings: '{mvn-settings}'
807 maven-version: '{maven-version}'
810 settings: '{mvn-settings}'
812 global-settings: 'global-settings'
813 global-settings-type: cfp
819 maven-version: '{maven-version}'
821 - job-template: &docker_version_java_defaults
822 # Job template for building & pushing docker images
824 # The purpose of this job template is to run:
825 # 1. login to the docker registry
826 # 2. inject a version.properties file and set versions
827 # 3. run a docker push
829 # Required Variables:
830 # pom: name/location of the pom.xml file relative to the workspace
831 # profile: the docker profile defined in the pom
832 # maven-properties: properties passed to maven
834 name: '{project-name}-{stream}-docker-version-java-daily'
835 id: '{project-name}-{stream}-docker-version-java-daily'
836 project-type: freestyle
838 disabled: '{disabled}'
841 build-days-to-keep: '{build-days-to-keep}'
847 refspec: 'refs/heads/{branch}'
848 artifacts: '{archive-artifacts}'
850 maven-version: '{maven-version}'
852 mvn-params: '{mvn-params}'
855 - gerrit-trigger-scm:
857 choosing-strategy: 'default'
858 submodule-recursive: '{submodule-recursive}'
862 build-timeout: '{build-timeout}'
867 - gerrit-trigger-release-manually:
868 server: '{server-name}'
874 - provide-maven-settings:
875 global-settings-file: 'global-settings'
876 settings-file: '{mvn-settings}'
879 properties-file: version.properties
880 - maven-set-release-version:
881 maven-version: '{maven-version}'
882 mvn-settings: '{mvn-settings}'
887 - maven-docker-push-daily:
888 maven-version: '{maven-version}'
889 mvn-settings: '{mvn-settings}'
891 # use default as mvn-profile if profile is not needed
892 mvn-profile: '{mvn-profile}'
893 mvn-params: '{mvn-params}'
897 maven-version: '{maven-version}'
900 # Job template for building & pushing docker images
902 # The purpose of this job template is to run:
903 # 1. login to the docker registry
904 # 2. inject a version.properties file and set versions
905 # 3. run a docker push
907 # Required Variables:
908 # pom: name/location of the pom.xml file relative to the workspace
909 # profile: the docker profile defined in the pom
910 # maven-properties: properties passed to maven
912 <<: *docker_version_java_defaults
913 name: '{project-name}-{stream}-docker-version-java-daily'
914 id: 'docker-version-java-daily'
917 - infra-wrappers-docker-build:
918 build-timeout: '{build-timeout}'
921 # Job template for building & pushing docker images for AAI specific repos
923 # The purpose of this job template is to run:
924 # 1. login to the docker registry
926 # 3. run include-docker-push.sh
928 # Required Variables:
929 # pom: name/location of the pom.xml file relative to the workspace
930 # maven-properties: properties passed to maven
932 name: '{project-name}-{stream}-aai-docker-java-daily'
933 project-type: freestyle
935 docker-image-name: ''
936 disabled: '{disabled}'
937 java-version: 'openjdk8'
940 build-days-to-keep: '{build-days-to-keep}'
946 refspec: 'refs/heads/{branch}'
947 artifacts: '{archive-artifacts}'
949 maven-version: '{maven-version}'
951 docker-image-name: '{docker-image-name}'
954 - gerrit-trigger-scm:
956 choosing-strategy: 'default'
957 submodule-recursive: '{submodule-recursive}'
961 build-timeout: '{build-timeout}'
966 - gerrit-trigger-release-manually:
967 server: '{server-name}'
973 - lf-update-java-alternatives:
974 java-version: "{java-version}"
975 - provide-maven-settings:
976 global-settings-file: 'global-settings'
977 settings-file: '{mvn-settings}'
982 maven-version: '{maven-version}'
984 goals: 'clean install -DskipTests -B
985 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
986 settings: '{mvn-settings}'
988 global-settings: 'global-settings'
989 global-settings-type: cfp
992 maven-version: '{maven-version}'
995 settings: '{mvn-settings}'
997 global-settings: 'global-settings'
998 global-settings-type: cfp
1000 - maven.test.skip=true
1001 - docker.pull.registry=nexus3.onap.org:10001
1002 - docker.push.registry=nexus3.onap.org:10003
1004 - shell: !include-raw-escape: include-docker-push.sh
1008 maven-version: '{maven-version}'
1011 # Job template for Java merge jobs for SDC specific repos
1013 # The purpose of this job template is to run:
1014 # 1. maven clean deploy
1016 # Required Variables:
1017 # branch: git branch (eg. stable/lithium or master)
1019 <<: *merge_java_defaults
1020 name: '{project-name}-{stream}-sdc-merge-java'
1022 node: '{build-node}'
1026 - lf-infra-pre-build
1027 - lf-update-java-alternatives:
1028 java-version: "{java-version}"
1029 - provide-maven-settings:
1030 global-settings-file: 'global-settings'
1031 settings-file: '{mvn-settings}'
1035 - maven-docker-push-daily:
1036 maven-version: '{maven-version}'
1037 mvn-settings: '{mvn-settings}'
1039 # use default as mvn-profile if profile is not needed
1040 mvn-profile: '{mvn-profile}'
1044 # Job template for Java merge jobs on multiple architectures
1046 # The purpose of this job template is to:
1047 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1048 # 2. Build and push a docker manifest list for the images created by
1051 name: '{project-name}-multiarch-{stream}-merge-java'
1052 node: '{build-node}'
1053 project-type: multijob
1054 disabled: '{obj:disabled}'
1058 - lf-infra-parameters:
1059 project: '{project}'
1063 name: DOCKER_REGISTRY
1066 name: DOCKERHUB_REGISTRY
1067 default: 'registry-1.docker.io'
1074 use-build-blocker: true
1076 - '{project-name}-.*-merge-.*'
1077 blocking-level: 'NODE'
1080 - gerrit-trigger-scm:
1082 choosing-strategy: 'default'
1083 submodule-recursive: '{submodule-recursive}'
1087 build-timeout: '{build-timeout}'
1090 - gerrit-trigger-patch-merged:
1091 server: '{server-name}'
1092 project: '{project}'
1098 name: 'build docker images'
1100 execution-type: PARALLEL
1102 - name: '{project-name}-amd64-{stream}-merge-java'
1103 kill-phase-on: FAILURE
1104 current-parameters: true
1105 - name: '{project-name}-arm64-{stream}-merge-java'
1106 kill-phase-on: NEVER
1107 current-parameters: true
1109 name: 'publish docker manifest'
1110 condition: SUCCESSFUL
1111 execution-type: PARALLEL
1113 - name: '{project-name}-docker-manifest-{stream}'
1114 current-parameters: true
1115 predefined-parameters: |
1116 PARENT_JOB_NAME=$JOB_NAME
1117 DOCKERHUB_REGISTRY=docker.io