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: ''
23 build-days-to-keep: '{build-days-to-keep}'
29 refspec: 'refs/heads/{branch}'
30 artifacts: '{archive-artifacts}'
32 maven-version: '{maven-version}'
34 mvn-params: '{mvn-params}'
38 refspec: '$GERRIT_REFSPEC'
39 choosing-strategy: 'gerrit'
40 submodule-recursive: '{submodule-recursive}'
44 build-timeout: '{build-timeout}'
47 - gerrit-trigger-patch-submitted:
48 server: '{server-name}'
51 files: '{obj:pattern}'
55 - provide-maven-settings:
56 global-settings-file: 'global-settings'
57 settings-file: '{mvn-settings}'
59 properties-content: "{build-env-variables}"
61 maven-version: '{maven-version}'
63 goals: 'clean install -B
64 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn {mvn-params}'
66 - MAVEN_OPTS='{mvn-opts}'
69 settings: '{mvn-settings}'
71 global-settings: 'global-settings'
72 global-settings-type: cfp
76 maven-version: '{maven-version}'
79 # Job template for Java verify jobs running checkstyle at the end
80 # When checkstyle will be fully incorporated, it is meant to replace
81 # '{project-name}-{stream}-verify-java-checkstyle'
83 # The purpose of this job template is to run:
84 # 1. maven clean install
86 # This job publishes checkstyle results.
89 # branch: git branch (eg. stable/lithium or master)
91 <<: *verify_java_defaults
92 name: '{project-name}-{stream}-verify-java-checkstyle'
95 maven-version: '{maven-version}'
99 # Job template for Java verify jobs with POM not at the root
101 # The purpose of this job template is to run:
102 # 1. maven clean install
104 # This job supports subprojects.
106 # Required Variables:
107 # branch: git branch (eg. stable/lithium or master)
108 # pom: name/location of the pom.xml file relative to the workspace
109 # pattern: ant file-path pattern relative to the workspace used to
112 <<: *verify_java_defaults
113 name: '{project-name}-{stream}-{subproject}-verify-java'
116 # Job template for Java daily release jobs
118 # The purpose of this job template is to run:
119 # 1. maven clean deploy with Sonar scans
121 # Required Variables:
122 # branch: git branch (eg. stable/lithium or master)
124 name: '{project-name}-{stream}-release-java-daily'
126 project-type: freestyle
128 disabled: '{disabled}'
129 maven-deploy-properties:
132 build-days-to-keep: '{build-days-to-keep}'
138 refspec: 'refs/heads/{branch}'
139 artifacts: '{archive-artifacts}'
141 maven-version: '{maven-version}'
144 - gerrit-trigger-scm:
146 choosing-strategy: 'default'
147 submodule-recursive: '{submodule-recursive}'
151 build-timeout: '{build-timeout}'
156 - gerrit-trigger-release-manually:
157 server: '{server-name}'
163 - provide-maven-settings:
164 global-settings-file: 'global-settings'
165 settings-file: '{mvn-settings}'
168 maven-version: '{maven-version}'
169 goals: 'clean deploy -B
170 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
172 - '{maven-deploy-properties}'
174 - '-Xmx4096m -XX:MaxPermSize=512m'
175 settings: '{mvn-settings}'
177 global-settings: 'global-settings'
178 global-settings-type: cfp
182 maven-version: '{maven-version}'
185 # Job template for Java daily release jobs running checkstyle at the end
186 # When checkstyle will be fully incorporated, it is meant to replace
187 # '{project-name}-{stream}-release-java-daily'
189 # The purpose of this job template is to run:
190 # 1. maven clean deploy with Sonar scans
192 # This job publishes checkstyle results.
193 # This job uses a conditional regex match step to set versions.
195 # Required Variables:
196 # branch: git branch (eg. stable/lithium or master)
198 name: '{project-name}-{stream}-release-java-daily-checkstyle'
199 project-type: freestyle
201 disabled: '{disabled}'
202 maven-deploy-properties:
205 build-days-to-keep: '{build-days-to-keep}'
210 refspec: 'refs/heads/{branch}'
211 artifacts: '{archive-artifacts}'
213 maven-version: '{maven-version}'
215 - gerrit-trigger-scm:
217 choosing-strategy: 'default'
218 submodule-recursive: '{submodule-recursive}'
221 build-timeout: '{build-timeout}'
225 - gerrit-trigger-release-manually:
226 server: '{server-name}'
231 - provide-maven-settings:
232 global-settings-file: 'global-settings'
233 settings-file: '{mvn-settings}'
235 condition-kind: regex-match
237 label: '{setVersion}'
240 properties-file: version.properties
241 - maven-set-release-version:
242 maven-version: '{maven-version}'
243 mvn-settings: '{mvn-settings}'
246 maven-version: '{maven-version}'
247 goals: 'clean deploy -B
248 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
249 properties: '{obj:mvn_properties}'
250 settings: '{mvn-settings}'
252 global-settings: 'global-settings'
253 global-settings-type: cfp
256 maven-version: '{maven-version}'
257 - checkstyle-result-daily
260 # Job template for Java daily release jobs
262 # The purpose of this job template is to run:
263 # 1. maven set versions
264 # 2. maven clean deploy with Sonar scans
266 # Required Variables:
267 # branch: git branch (eg. stable/lithium or master)
269 name: '{project-name}-{stream}-release-version-java-daily'
271 project-type: freestyle
272 disabled: '{disabled}'
274 maven-deploy-properties:
277 build-days-to-keep: '{build-days-to-keep}'
283 refspec: 'refs/heads/{branch}'
284 artifacts: '{archive-artifacts}'
286 maven-version: '{maven-version}'
289 - gerrit-trigger-scm:
291 choosing-strategy: 'default'
292 submodule-recursive: '{submodule-recursive}'
296 build-timeout: '{build-timeout}'
301 - gerrit-trigger-release-manually:
302 server: '{server-name}'
308 - provide-maven-settings:
309 global-settings-file: 'global-settings'
310 settings-file: '{mvn-settings}'
313 properties-file: version.properties
314 - maven-set-release-version:
315 maven-version: '{maven-version}'
316 mvn-settings: '{mvn-settings}'
320 maven-version: '{maven-version}'
321 goals: 'clean deploy -B
322 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
324 - '{maven-deploy-properties}'
325 settings: '{mvn-settings}'
327 global-settings: 'global-settings'
328 global-settings-type: cfp
332 maven-version: '{maven-version}'
334 - job-template: &merge_java_defaults
335 # Job template for Java merge jobs
337 # The purpose of this job template is to run:
338 # 1. maven clean deploy
340 # Required Variables:
341 # branch: git branch (eg. stable/lithium or master)
343 name: '{project-name}-{stream}-merge-java'
345 project-type: freestyle
356 build-days-to-keep: '{build-days-to-keep}'
362 refspec: 'refs/heads/{branch}'
363 artifacts: '{archive-artifacts}'
365 maven-version: '{maven-version}'
368 - gerrit-trigger-scm:
370 choosing-strategy: 'default'
371 submodule-recursive: '{submodule-recursive}'
375 build-timeout: '{build-timeout}'
378 - gerrit-trigger-patch-merged:
379 server: '{server-name}'
386 - provide-maven-settings:
387 global-settings-file: 'global-settings'
388 settings-file: '{mvn-settings}'
390 condition-kind: regex-match
391 regex: .*(amd64|arm64).*
392 label: '{project-name}'
394 - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
396 maven-version: '{maven-version}'
398 goals: 'clean deploy -B {mvn-params}
399 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
401 - MAVEN_OPTS='{mvn-opts}'
404 settings: '{mvn-settings}'
406 global-settings: 'global-settings'
407 global-settings-type: cfp
408 properties: '{obj:mvn_properties}'
412 maven-version: '{maven-version}'
415 # Job template for Java merge jobs based on
416 # '{project-name}-{stream}-merge-java'
417 # The purpose of this job template is to run:
418 # 1. maven clean deploy
420 # This project supports maven properties.
422 # Required Variables:
423 # branch: git branch (eg. stable/lithium or master)
424 # maven-properties: properties passed to maven
426 <<: *merge_java_defaults
427 name: '{project-name}-{stream}-merge-properties-java'
430 # Job template for Java merge jobs that takes a maven template
432 # The purpose of this job template is to run:
433 # 1. maven clean deploy -P {mvn-profile}
435 # Required Variables:
436 # branch: git branch (eg. stable/lithium or master)
438 <<: *merge_java_defaults
439 name: '{project-name}-{stream}-merge-profile-java'
443 - provide-maven-settings:
444 global-settings-file: 'global-settings'
445 settings-file: '{mvn-settings}'
450 maven-version: '{maven-version}'
451 goals: 'clean deploy -P {mvn-profile} -B
452 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
453 settings: '{mvn-settings}'
455 global-settings: 'global-settings'
456 global-settings-type: cfp
458 - docker.pull.registry=nexus3.onap.org:10001
459 - docker.push.registry=nexus3.onap.org:10003
462 # Job template for Java merge jobs with POM not at the root
464 # The purpose of this job template is to run:
465 # 1. maven clean deploy
467 # This job supports subprojects.
469 # Required Variables:
470 # branch: git branch (eg. stable/lithium or master)
471 # pom: name/location of the pom.xml file relative to the workspace
472 # pattern: ant file-path pattern relative to the workspace used to
475 <<: *merge_java_defaults
476 name: '{project-name}-{stream}-{subproject}-merge-java'
478 - job-template: &docker_java_defaults
479 # Job template for Docker daily jobs
481 # The purpose of this job template is to run:
482 # 1. login to the docker registry
485 # Required Variables:
486 # branch: git branch (eg. stable/lithium or master)
488 name: '{project-name}-{stream}-docker-java-daily'
489 id: '{project-name}-{stream}-docker-java-daily'
490 project-type: freestyle
492 disabled: '{disabled}'
495 build-days-to-keep: '{build-days-to-keep}'
501 refspec: 'refs/heads/{branch}'
502 artifacts: '{archive-artifacts}'
504 maven-version: '{maven-version}'
506 mvn-params: '{mvn-params}'
509 - gerrit-trigger-scm:
511 choosing-strategy: 'default'
512 submodule-recursive: '{submodule-recursive}'
516 build-timeout: '{build-timeout}'
521 - gerrit-trigger-release-manually:
522 server: '{server-name}'
528 - provide-maven-settings:
529 global-settings-file: 'global-settings'
530 settings-file: '{mvn-settings}'
534 - maven-docker-push-daily:
535 maven-version: '{maven-version}'
536 mvn-settings: '{mvn-settings}'
538 # use default as mvn-profile if profile is not needed
539 mvn-profile: '{mvn-profile}'
540 mvn-params: '{mvn-params}'
544 maven-version: '{maven-version}'
547 # Job template for Docker daily jobs
549 # The purpose of this job template is to run:
550 # 1. login to the docker registry
553 # Required Variables:
554 # branch: git branch (eg. stable/lithium or master)
556 <<: *docker_java_defaults
557 name: '{project-name}-{stream}-docker-java-daily'
558 id: docker-java-daily
561 - infra-wrappers-docker-build:
562 build-timeout: '{build-timeout}'
565 # Job template for building & pushing docker images
567 # The purpose of this job template is to run:
568 # 1. login to the docker registry
569 # 2. run a specified shell builder
571 # Required Variables:
572 # pom: name/location of the pom.xml file relative to the workspace
573 # maven-properties: properties passed to maven
575 name: '{project-name}-{stream}-docker-java-shell-daily'
576 project-type: freestyle
578 disabled: '{disabled}'
581 build-days-to-keep: '{build-days-to-keep}'
587 refspec: 'refs/heads/{branch}'
588 artifacts: '{archive-artifacts}'
590 maven-version: '{maven-version}'
593 - gerrit-trigger-scm:
595 choosing-strategy: 'default'
596 submodule-recursive: '{submodule-recursive}'
600 build-timeout: '{build-timeout}'
605 - gerrit-trigger-release-manually:
606 server: '{server-name}'
612 - provide-maven-settings:
613 global-settings-file: 'global-settings'
614 settings-file: '{mvn-settings}'
619 maven-version: '{maven-version}'
621 settings: '{mvn-settings}'
623 global-settings: 'global-settings'
624 global-settings-type: cfp
630 maven-version: '{maven-version}'
633 # Job template for building & pushing docker images
635 # The purpose of this job template is to run:
636 # 1. login to the docker registry
637 # 2. run a specified shell builder
639 # Required Variables:
640 # pom: name/location of the pom.xml file relative to the workspace
641 # maven-properties: properties passed to maven
643 name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
644 project-type: freestyle
646 disabled: '{disabled}'
649 build-days-to-keep: '{build-days-to-keep}'
655 refspec: 'refs/heads/{branch}'
656 artifacts: '{archive-artifacts}'
658 maven-version: '{maven-version}'
661 - gerrit-trigger-scm:
663 choosing-strategy: 'default'
664 submodule-recursive: '{submodule-recursive}'
668 build-timeout: '{build-timeout}'
673 - gerrit-trigger-release-manually:
674 server: '{server-name}'
680 - provide-maven-settings:
681 global-settings-file: 'global-settings'
682 settings-file: '{mvn-settings}'
687 maven-version: '{maven-version}'
690 settings: '{mvn-settings}'
692 global-settings: 'global-settings'
693 global-settings-type: cfp
699 maven-version: '{maven-version}'
702 # Job template for building & pushing docker images
704 # The purpose of this job template is to run:
705 # 1. login to the docker registry
706 # 2. inject a version.properties file and set versions
707 # 3. run a specified shell builder
709 # Required Variables:
710 # pom: name/location of the pom.xml file relative to the workspace
711 # maven-properties: properties passed to maven
713 name: '{project-name}-{stream}-docker-java-version-shell-daily'
714 project-type: freestyle
716 disabled: '{disabled}'
719 build-days-to-keep: '{build-days-to-keep}'
725 refspec: 'refs/heads/{branch}'
726 artifacts: '{archive-artifacts}'
728 maven-version: '{maven-version}'
731 - gerrit-trigger-scm:
733 choosing-strategy: 'default'
734 submodule-recursive: '{submodule-recursive}'
738 build-timeout: '{build-timeout}'
743 - gerrit-trigger-release-manually:
744 server: '{server-name}'
750 - provide-maven-settings:
751 global-settings-file: 'global-settings'
752 settings-file: '{mvn-settings}'
755 properties-file: version.properties
756 - maven-set-release-version:
757 maven-version: '{maven-version}'
758 mvn-settings: '{mvn-settings}'
764 maven-version: '{maven-version}'
766 settings: '{mvn-settings}'
768 global-settings: 'global-settings'
769 global-settings-type: cfp
775 maven-version: '{maven-version}'
778 # Job template for building & pushing docker images
780 # The purpose of this job template is to run:
781 # 1. login to the docker registry
782 # 2. inject a version.properties file and set versions
783 # 3. run a specified shell builder
785 # This template supports subprojects.
787 # Required Variables:
788 # pom: name/location of the pom.xml file relative to the workspace
789 # maven-properties: properties passed to maven
791 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
792 project-type: freestyle
793 node: 'ubuntu1604-docker-8c-8g'
794 disabled: '{disabled}'
797 build-days-to-keep: '{build-days-to-keep}'
803 refspec: 'refs/heads/{branch}'
804 artifacts: '{archive-artifacts}'
806 maven-version: '{maven-version}'
809 - gerrit-trigger-scm:
811 choosing-strategy: 'default'
812 submodule-recursive: '{submodule-recursive}'
816 build-timeout: '{build-timeout}'
821 - gerrit-trigger-release-manually:
822 server: '{server-name}'
828 - provide-maven-settings:
829 global-settings-file: 'global-settings'
830 settings-file: '{mvn-settings}'
833 properties-file: version.properties
834 - maven-set-release-version:
835 maven-version: '{maven-version}'
836 mvn-settings: '{mvn-settings}'
842 maven-version: '{maven-version}'
845 settings: '{mvn-settings}'
847 global-settings: 'global-settings'
848 global-settings-type: cfp
854 maven-version: '{maven-version}'
856 - job-template: &docker_version_java_defaults
857 # Job template for building & pushing docker images
859 # The purpose of this job template is to run:
860 # 1. login to the docker registry
861 # 2. inject a version.properties file and set versions
862 # 3. run a docker push
864 # Required Variables:
865 # pom: name/location of the pom.xml file relative to the workspace
866 # profile: the docker profile defined in the pom
867 # maven-properties: properties passed to maven
869 name: '{project-name}-{stream}-docker-version-java-daily'
870 id: '{project-name}-{stream}-docker-version-java-daily'
871 project-type: freestyle
873 disabled: '{disabled}'
876 build-days-to-keep: '{build-days-to-keep}'
882 refspec: 'refs/heads/{branch}'
883 artifacts: '{archive-artifacts}'
885 maven-version: '{maven-version}'
887 mvn-params: '{mvn-params}'
890 - gerrit-trigger-scm:
892 choosing-strategy: 'default'
893 submodule-recursive: '{submodule-recursive}'
897 build-timeout: '{build-timeout}'
902 - gerrit-trigger-release-manually:
903 server: '{server-name}'
909 - provide-maven-settings:
910 global-settings-file: 'global-settings'
911 settings-file: '{mvn-settings}'
914 properties-file: version.properties
915 - maven-set-release-version:
916 maven-version: '{maven-version}'
917 mvn-settings: '{mvn-settings}'
922 - maven-docker-push-daily:
923 maven-version: '{maven-version}'
924 mvn-settings: '{mvn-settings}'
926 # use default as mvn-profile if profile is not needed
927 mvn-profile: '{mvn-profile}'
928 mvn-params: '{mvn-params}'
932 maven-version: '{maven-version}'
935 # Job template for building & pushing docker images
937 # The purpose of this job template is to run:
938 # 1. login to the docker registry
939 # 2. inject a version.properties file and set versions
940 # 3. run a docker push
942 # Required Variables:
943 # pom: name/location of the pom.xml file relative to the workspace
944 # profile: the docker profile defined in the pom
945 # maven-properties: properties passed to maven
947 <<: *docker_version_java_defaults
948 name: '{project-name}-{stream}-docker-version-java-daily'
949 id: 'docker-version-java-daily'
952 - infra-wrappers-docker-build:
953 build-timeout: '{build-timeout}'
956 # Job template for building & pushing docker images for AAI specific repos
958 # The purpose of this job template is to run:
959 # 1. login to the docker registry
961 # 3. run include-docker-push.sh
963 # Required Variables:
964 # pom: name/location of the pom.xml file relative to the workspace
965 # maven-properties: properties passed to maven
967 name: '{project-name}-{stream}-aai-docker-java-daily'
968 project-type: freestyle
970 docker-image-name: ''
971 disabled: '{disabled}'
974 build-days-to-keep: '{build-days-to-keep}'
980 refspec: 'refs/heads/{branch}'
981 artifacts: '{archive-artifacts}'
983 maven-version: '{maven-version}'
985 docker-image-name: '{docker-image-name}'
988 - gerrit-trigger-scm:
990 choosing-strategy: 'default'
991 submodule-recursive: '{submodule-recursive}'
995 build-timeout: '{build-timeout}'
1000 - gerrit-trigger-release-manually:
1001 server: '{server-name}'
1002 project: '{project}'
1006 - lf-infra-pre-build
1007 - provide-maven-settings:
1008 global-settings-file: 'global-settings'
1009 settings-file: '{mvn-settings}'
1014 maven-version: '{maven-version}'
1016 goals: 'clean install -DskipTests -B
1017 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1018 settings: '{mvn-settings}'
1020 global-settings: 'global-settings'
1021 global-settings-type: cfp
1024 maven-version: '{maven-version}'
1026 goals: '{mvn-goals}'
1027 settings: '{mvn-settings}'
1029 global-settings: 'global-settings'
1030 global-settings-type: cfp
1032 - maven.test.skip=true
1033 - docker.pull.registry=nexus3.onap.org:10001
1034 - docker.push.registry=nexus3.onap.org:10003
1036 - shell: !include-raw-escape: include-docker-push.sh
1040 maven-version: '{maven-version}'
1043 # Job template for Java merge jobs for SDC specific repos
1045 # The purpose of this job template is to run:
1046 # 1. maven clean deploy
1048 # Required Variables:
1049 # branch: git branch (eg. stable/lithium or master)
1051 <<: *merge_java_defaults
1052 name: '{project-name}-{stream}-sdc-merge-java'
1054 node: '{build-node}'
1058 - lf-infra-pre-build
1059 - provide-maven-settings:
1060 global-settings-file: 'global-settings'
1061 settings-file: '{mvn-settings}'
1065 - maven-docker-push-daily:
1066 maven-version: '{maven-version}'
1067 mvn-settings: '{mvn-settings}'
1069 # use default as mvn-profile if profile is not needed
1070 mvn-profile: '{mvn-profile}'
1074 # Job template for Java merge jobs on multiple architectures
1076 # The purpose of this job template is to:
1077 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1078 # 2. Build and push a docker manifest list for the images created by
1081 name: '{project-name}-multiarch-{stream}-merge-java'
1082 node: '{build-node}'
1083 project-type: multijob
1084 disabled: '{obj:disabled}'
1088 - lf-infra-parameters:
1089 project: '{project}'
1093 name: DOCKER_REGISTRY
1096 name: DOCKERHUB_REGISTRY
1097 default: 'registry-1.docker.io'
1104 use-build-blocker: true
1106 - '{project-name}-.*-merge-.*'
1107 blocking-level: 'NODE'
1110 - gerrit-trigger-scm:
1112 choosing-strategy: 'default'
1113 submodule-recursive: '{submodule-recursive}'
1117 build-timeout: '{build-timeout}'
1120 - gerrit-trigger-patch-merged:
1121 server: '{server-name}'
1122 project: '{project}'
1128 name: 'build docker images'
1130 execution-type: PARALLEL
1132 - name: '{project-name}-amd64-{stream}-merge-java'
1133 kill-phase-on: FAILURE
1134 current-parameters: true
1135 - name: '{project-name}-arm64-{stream}-merge-java'
1136 kill-phase-on: NEVER
1137 current-parameters: true
1139 name: 'publish docker manifest'
1140 condition: SUCCESSFUL
1141 execution-type: PARALLEL
1143 - name: '{project-name}-docker-manifest-{stream}'
1144 current-parameters: true
1145 predefined-parameters: |
1146 PARENT_JOB_NAME=$JOB_NAME
1147 DOCKERHUB_REGISTRY=docker.io