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 daily release jobs
121 # The purpose of this job template is to run:
122 # 1. maven clean deploy with Sonar scans
124 # Required Variables:
125 # branch: git branch (eg. stable/lithium or master)
127 name: '{project-name}-{stream}-release-java-daily'
129 project-type: freestyle
131 disabled: '{disabled}'
132 maven-deploy-properties:
135 build-days-to-keep: '{build-days-to-keep}'
141 refspec: 'refs/heads/{branch}'
142 artifacts: '{archive-artifacts}'
144 maven-version: '{maven-version}'
147 - gerrit-trigger-scm:
149 choosing-strategy: 'default'
150 submodule-recursive: '{submodule-recursive}'
154 build-timeout: '{build-timeout}'
159 - gerrit-trigger-release-manually:
160 server: '{server-name}'
166 - provide-maven-settings:
167 global-settings-file: 'global-settings'
168 settings-file: '{mvn-settings}'
171 maven-version: '{maven-version}'
172 goals: 'clean deploy -B
173 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
175 - '{maven-deploy-properties}'
177 - '-Xmx4096m -XX:MaxPermSize=512m'
178 settings: '{mvn-settings}'
180 global-settings: 'global-settings'
181 global-settings-type: cfp
185 maven-version: '{maven-version}'
188 # Job template for Java daily release jobs running checkstyle at the end
189 # When checkstyle will be fully incorporated, it is meant to replace
190 # '{project-name}-{stream}-release-java-daily'
192 # The purpose of this job template is to run:
193 # 1. maven clean deploy with Sonar scans
195 # This job publishes checkstyle results.
196 # This job uses a conditional regex match step to set versions.
198 # Required Variables:
199 # branch: git branch (eg. stable/lithium or master)
201 name: '{project-name}-{stream}-release-java-daily-checkstyle'
202 project-type: freestyle
204 disabled: '{disabled}'
205 maven-deploy-properties:
208 build-days-to-keep: '{build-days-to-keep}'
213 refspec: 'refs/heads/{branch}'
214 artifacts: '{archive-artifacts}'
216 maven-version: '{maven-version}'
218 - gerrit-trigger-scm:
220 choosing-strategy: 'default'
221 submodule-recursive: '{submodule-recursive}'
224 build-timeout: '{build-timeout}'
228 - gerrit-trigger-release-manually:
229 server: '{server-name}'
234 - provide-maven-settings:
235 global-settings-file: 'global-settings'
236 settings-file: '{mvn-settings}'
238 condition-kind: regex-match
240 label: '{setVersion}'
243 properties-file: version.properties
244 - maven-set-release-version:
245 maven-version: '{maven-version}'
246 mvn-settings: '{mvn-settings}'
249 maven-version: '{maven-version}'
250 goals: 'clean deploy -B
251 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
252 properties: '{obj:mvn_properties}'
253 settings: '{mvn-settings}'
255 global-settings: 'global-settings'
256 global-settings-type: cfp
259 maven-version: '{maven-version}'
260 - checkstyle-result-daily
263 # Job template for Java daily release jobs
265 # The purpose of this job template is to run:
266 # 1. maven set versions
267 # 2. maven clean deploy with Sonar scans
269 # Required Variables:
270 # branch: git branch (eg. stable/lithium or master)
272 name: '{project-name}-{stream}-release-version-java-daily'
274 project-type: freestyle
275 disabled: '{disabled}'
277 maven-deploy-properties:
280 build-days-to-keep: '{build-days-to-keep}'
286 refspec: 'refs/heads/{branch}'
287 artifacts: '{archive-artifacts}'
289 maven-version: '{maven-version}'
292 - gerrit-trigger-scm:
294 choosing-strategy: 'default'
295 submodule-recursive: '{submodule-recursive}'
299 build-timeout: '{build-timeout}'
304 - gerrit-trigger-release-manually:
305 server: '{server-name}'
311 - provide-maven-settings:
312 global-settings-file: 'global-settings'
313 settings-file: '{mvn-settings}'
316 properties-file: version.properties
317 - maven-set-release-version:
318 maven-version: '{maven-version}'
319 mvn-settings: '{mvn-settings}'
323 maven-version: '{maven-version}'
324 goals: 'clean deploy -B
325 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
327 - '{maven-deploy-properties}'
328 settings: '{mvn-settings}'
330 global-settings: 'global-settings'
331 global-settings-type: cfp
335 maven-version: '{maven-version}'
337 - job-template: &merge_java_defaults
338 # Job template for Java merge jobs
340 # The purpose of this job template is to run:
341 # 1. maven clean deploy
343 # Required Variables:
344 # branch: git branch (eg. stable/lithium or master)
346 name: '{project-name}-{stream}-merge-java'
348 project-type: freestyle
356 java-version: openjdk8
360 build-days-to-keep: '{build-days-to-keep}'
366 refspec: 'refs/heads/{branch}'
367 artifacts: '{archive-artifacts}'
369 maven-version: '{maven-version}'
372 - gerrit-trigger-scm:
374 choosing-strategy: 'default'
375 submodule-recursive: '{submodule-recursive}'
379 build-timeout: '{build-timeout}'
382 - gerrit-trigger-patch-merged:
383 server: '{server-name}'
390 - lf-update-java-alternatives:
391 java-version: "{java-version}"
392 - provide-maven-settings:
393 global-settings-file: 'global-settings'
394 settings-file: '{mvn-settings}'
396 condition-kind: regex-match
397 regex: .*(amd64|arm64).*
398 label: '{project-name}'
400 - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
402 maven-version: '{maven-version}'
404 goals: 'clean deploy -B {mvn-params}
405 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
407 - MAVEN_OPTS='{mvn-opts}'
410 settings: '{mvn-settings}'
412 global-settings: 'global-settings'
413 global-settings-type: cfp
414 properties: '{obj:mvn_properties}'
418 maven-version: '{maven-version}'
421 # Job template for Java merge jobs based on
422 # '{project-name}-{stream}-merge-java'
423 # The purpose of this job template is to run:
424 # 1. maven clean deploy
426 # This project supports maven properties.
428 # Required Variables:
429 # branch: git branch (eg. stable/lithium or master)
430 # maven-properties: properties passed to maven
432 <<: *merge_java_defaults
433 name: '{project-name}-{stream}-merge-properties-java'
436 # Job template for Java merge jobs that takes a maven template
438 # The purpose of this job template is to run:
439 # 1. maven clean deploy -P {mvn-profile}
441 # Required Variables:
442 # branch: git branch (eg. stable/lithium or master)
444 <<: *merge_java_defaults
445 name: '{project-name}-{stream}-merge-profile-java'
449 - provide-maven-settings:
450 global-settings-file: 'global-settings'
451 settings-file: '{mvn-settings}'
456 maven-version: '{maven-version}'
457 goals: 'clean deploy -P {mvn-profile} -B
458 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
459 settings: '{mvn-settings}'
461 global-settings: 'global-settings'
462 global-settings-type: cfp
464 - docker.pull.registry=nexus3.onap.org:10001
465 - docker.push.registry=nexus3.onap.org:10003
468 # Job template for Java merge jobs with POM not at the root
470 # The purpose of this job template is to run:
471 # 1. maven clean deploy
473 # This job supports subprojects.
475 # Required Variables:
476 # branch: git branch (eg. stable/lithium or master)
477 # pom: name/location of the pom.xml file relative to the workspace
478 # pattern: ant file-path pattern relative to the workspace used to
481 <<: *merge_java_defaults
482 name: '{project-name}-{stream}-{subproject}-merge-java'
484 - job-template: &docker_java_defaults
485 # Job template for Docker daily jobs
487 # The purpose of this job template is to run:
488 # 1. login to the docker registry
491 # Required Variables:
492 # branch: git branch (eg. stable/lithium or master)
494 name: '{project-name}-{stream}-docker-java-daily'
495 id: '{project-name}-{stream}-docker-java-daily'
496 project-type: freestyle
498 disabled: '{disabled}'
501 build-days-to-keep: '{build-days-to-keep}'
507 refspec: 'refs/heads/{branch}'
508 artifacts: '{archive-artifacts}'
510 maven-version: '{maven-version}'
512 mvn-params: '{mvn-params}'
515 - gerrit-trigger-scm:
517 choosing-strategy: 'default'
518 submodule-recursive: '{submodule-recursive}'
522 build-timeout: '{build-timeout}'
527 - gerrit-trigger-release-manually:
528 server: '{server-name}'
534 - provide-maven-settings:
535 global-settings-file: 'global-settings'
536 settings-file: '{mvn-settings}'
540 - maven-docker-push-daily:
541 maven-version: '{maven-version}'
542 mvn-settings: '{mvn-settings}'
544 # use default as mvn-profile if profile is not needed
545 mvn-profile: '{mvn-profile}'
546 mvn-params: '{mvn-params}'
550 maven-version: '{maven-version}'
553 # Job template for Docker daily jobs
555 # The purpose of this job template is to run:
556 # 1. login to the docker registry
559 # Required Variables:
560 # branch: git branch (eg. stable/lithium or master)
562 <<: *docker_java_defaults
563 name: '{project-name}-{stream}-docker-java-daily'
564 id: docker-java-daily
567 - infra-wrappers-docker-build:
568 build-timeout: '{build-timeout}'
571 # Job template for building & pushing docker images
573 # The purpose of this job template is to run:
574 # 1. login to the docker registry
575 # 2. run a specified shell builder
577 # Required Variables:
578 # pom: name/location of the pom.xml file relative to the workspace
579 # maven-properties: properties passed to maven
581 name: '{project-name}-{stream}-docker-java-shell-daily'
582 project-type: freestyle
584 disabled: '{disabled}'
587 build-days-to-keep: '{build-days-to-keep}'
593 refspec: 'refs/heads/{branch}'
594 artifacts: '{archive-artifacts}'
596 maven-version: '{maven-version}'
599 - gerrit-trigger-scm:
601 choosing-strategy: 'default'
602 submodule-recursive: '{submodule-recursive}'
606 build-timeout: '{build-timeout}'
611 - gerrit-trigger-release-manually:
612 server: '{server-name}'
618 - provide-maven-settings:
619 global-settings-file: 'global-settings'
620 settings-file: '{mvn-settings}'
625 maven-version: '{maven-version}'
627 settings: '{mvn-settings}'
629 global-settings: 'global-settings'
630 global-settings-type: cfp
636 maven-version: '{maven-version}'
639 # Job template for building & pushing docker images
641 # The purpose of this job template is to run:
642 # 1. login to the docker registry
643 # 2. run a specified shell builder
645 # Required Variables:
646 # pom: name/location of the pom.xml file relative to the workspace
647 # maven-properties: properties passed to maven
649 name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
650 project-type: freestyle
652 disabled: '{disabled}'
655 build-days-to-keep: '{build-days-to-keep}'
661 refspec: 'refs/heads/{branch}'
662 artifacts: '{archive-artifacts}'
664 maven-version: '{maven-version}'
667 - gerrit-trigger-scm:
669 choosing-strategy: 'default'
670 submodule-recursive: '{submodule-recursive}'
674 build-timeout: '{build-timeout}'
679 - gerrit-trigger-release-manually:
680 server: '{server-name}'
686 - provide-maven-settings:
687 global-settings-file: 'global-settings'
688 settings-file: '{mvn-settings}'
693 maven-version: '{maven-version}'
696 settings: '{mvn-settings}'
698 global-settings: 'global-settings'
699 global-settings-type: cfp
705 maven-version: '{maven-version}'
708 # Job template for building & pushing docker images
710 # The purpose of this job template is to run:
711 # 1. login to the docker registry
712 # 2. inject a version.properties file and set versions
713 # 3. run a specified shell builder
715 # Required Variables:
716 # pom: name/location of the pom.xml file relative to the workspace
717 # maven-properties: properties passed to maven
719 name: '{project-name}-{stream}-docker-java-version-shell-daily'
720 project-type: freestyle
722 disabled: '{disabled}'
725 build-days-to-keep: '{build-days-to-keep}'
731 refspec: 'refs/heads/{branch}'
732 artifacts: '{archive-artifacts}'
734 maven-version: '{maven-version}'
737 - gerrit-trigger-scm:
739 choosing-strategy: 'default'
740 submodule-recursive: '{submodule-recursive}'
744 build-timeout: '{build-timeout}'
749 - gerrit-trigger-release-manually:
750 server: '{server-name}'
756 - provide-maven-settings:
757 global-settings-file: 'global-settings'
758 settings-file: '{mvn-settings}'
761 properties-file: version.properties
762 - maven-set-release-version:
763 maven-version: '{maven-version}'
764 mvn-settings: '{mvn-settings}'
770 maven-version: '{maven-version}'
772 settings: '{mvn-settings}'
774 global-settings: 'global-settings'
775 global-settings-type: cfp
781 maven-version: '{maven-version}'
784 # Job template for building & pushing docker images
786 # The purpose of this job template is to run:
787 # 1. login to the docker registry
788 # 2. inject a version.properties file and set versions
789 # 3. run a specified shell builder
791 # This template supports subprojects.
793 # Required Variables:
794 # pom: name/location of the pom.xml file relative to the workspace
795 # maven-properties: properties passed to maven
797 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
798 project-type: freestyle
799 node: 'ubuntu1604-docker-8c-8g'
800 disabled: '{disabled}'
803 build-days-to-keep: '{build-days-to-keep}'
809 refspec: 'refs/heads/{branch}'
810 artifacts: '{archive-artifacts}'
812 maven-version: '{maven-version}'
815 - gerrit-trigger-scm:
817 choosing-strategy: 'default'
818 submodule-recursive: '{submodule-recursive}'
822 build-timeout: '{build-timeout}'
827 - gerrit-trigger-release-manually:
828 server: '{server-name}'
834 - provide-maven-settings:
835 global-settings-file: 'global-settings'
836 settings-file: '{mvn-settings}'
839 properties-file: version.properties
840 - maven-set-release-version:
841 maven-version: '{maven-version}'
842 mvn-settings: '{mvn-settings}'
848 maven-version: '{maven-version}'
851 settings: '{mvn-settings}'
853 global-settings: 'global-settings'
854 global-settings-type: cfp
860 maven-version: '{maven-version}'
862 - job-template: &docker_version_java_defaults
863 # Job template for building & pushing docker images
865 # The purpose of this job template is to run:
866 # 1. login to the docker registry
867 # 2. inject a version.properties file and set versions
868 # 3. run a docker push
870 # Required Variables:
871 # pom: name/location of the pom.xml file relative to the workspace
872 # profile: the docker profile defined in the pom
873 # maven-properties: properties passed to maven
875 name: '{project-name}-{stream}-docker-version-java-daily'
876 id: '{project-name}-{stream}-docker-version-java-daily'
877 project-type: freestyle
879 disabled: '{disabled}'
882 build-days-to-keep: '{build-days-to-keep}'
888 refspec: 'refs/heads/{branch}'
889 artifacts: '{archive-artifacts}'
891 maven-version: '{maven-version}'
893 mvn-params: '{mvn-params}'
896 - gerrit-trigger-scm:
898 choosing-strategy: 'default'
899 submodule-recursive: '{submodule-recursive}'
903 build-timeout: '{build-timeout}'
908 - gerrit-trigger-release-manually:
909 server: '{server-name}'
915 - provide-maven-settings:
916 global-settings-file: 'global-settings'
917 settings-file: '{mvn-settings}'
920 properties-file: version.properties
921 - maven-set-release-version:
922 maven-version: '{maven-version}'
923 mvn-settings: '{mvn-settings}'
928 - maven-docker-push-daily:
929 maven-version: '{maven-version}'
930 mvn-settings: '{mvn-settings}'
932 # use default as mvn-profile if profile is not needed
933 mvn-profile: '{mvn-profile}'
934 mvn-params: '{mvn-params}'
938 maven-version: '{maven-version}'
941 # Job template for building & pushing docker images
943 # The purpose of this job template is to run:
944 # 1. login to the docker registry
945 # 2. inject a version.properties file and set versions
946 # 3. run a docker push
948 # Required Variables:
949 # pom: name/location of the pom.xml file relative to the workspace
950 # profile: the docker profile defined in the pom
951 # maven-properties: properties passed to maven
953 <<: *docker_version_java_defaults
954 name: '{project-name}-{stream}-docker-version-java-daily'
955 id: 'docker-version-java-daily'
958 - infra-wrappers-docker-build:
959 build-timeout: '{build-timeout}'
962 # Job template for building & pushing docker images for AAI specific repos
964 # The purpose of this job template is to run:
965 # 1. login to the docker registry
967 # 3. run include-docker-push.sh
969 # Required Variables:
970 # pom: name/location of the pom.xml file relative to the workspace
971 # maven-properties: properties passed to maven
973 name: '{project-name}-{stream}-aai-docker-java-daily'
974 project-type: freestyle
976 docker-image-name: ''
977 disabled: '{disabled}'
980 build-days-to-keep: '{build-days-to-keep}'
986 refspec: 'refs/heads/{branch}'
987 artifacts: '{archive-artifacts}'
989 maven-version: '{maven-version}'
991 docker-image-name: '{docker-image-name}'
994 - gerrit-trigger-scm:
996 choosing-strategy: 'default'
997 submodule-recursive: '{submodule-recursive}'
1001 build-timeout: '{build-timeout}'
1006 - gerrit-trigger-release-manually:
1007 server: '{server-name}'
1008 project: '{project}'
1012 - lf-infra-pre-build
1013 - provide-maven-settings:
1014 global-settings-file: 'global-settings'
1015 settings-file: '{mvn-settings}'
1020 maven-version: '{maven-version}'
1022 goals: 'clean install -DskipTests -B
1023 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1024 settings: '{mvn-settings}'
1026 global-settings: 'global-settings'
1027 global-settings-type: cfp
1030 maven-version: '{maven-version}'
1032 goals: '{mvn-goals}'
1033 settings: '{mvn-settings}'
1035 global-settings: 'global-settings'
1036 global-settings-type: cfp
1038 - maven.test.skip=true
1039 - docker.pull.registry=nexus3.onap.org:10001
1040 - docker.push.registry=nexus3.onap.org:10003
1042 - shell: !include-raw-escape: include-docker-push.sh
1046 maven-version: '{maven-version}'
1049 # Job template for Java merge jobs for SDC specific repos
1051 # The purpose of this job template is to run:
1052 # 1. maven clean deploy
1054 # Required Variables:
1055 # branch: git branch (eg. stable/lithium or master)
1057 <<: *merge_java_defaults
1058 name: '{project-name}-{stream}-sdc-merge-java'
1060 node: '{build-node}'
1064 - lf-infra-pre-build
1065 - provide-maven-settings:
1066 global-settings-file: 'global-settings'
1067 settings-file: '{mvn-settings}'
1071 - maven-docker-push-daily:
1072 maven-version: '{maven-version}'
1073 mvn-settings: '{mvn-settings}'
1075 # use default as mvn-profile if profile is not needed
1076 mvn-profile: '{mvn-profile}'
1080 # Job template for Java merge jobs on multiple architectures
1082 # The purpose of this job template is to:
1083 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1084 # 2. Build and push a docker manifest list for the images created by
1087 name: '{project-name}-multiarch-{stream}-merge-java'
1088 node: '{build-node}'
1089 project-type: multijob
1090 disabled: '{obj:disabled}'
1094 - lf-infra-parameters:
1095 project: '{project}'
1099 name: DOCKER_REGISTRY
1102 name: DOCKERHUB_REGISTRY
1103 default: 'registry-1.docker.io'
1110 use-build-blocker: true
1112 - '{project-name}-.*-merge-.*'
1113 blocking-level: 'NODE'
1116 - gerrit-trigger-scm:
1118 choosing-strategy: 'default'
1119 submodule-recursive: '{submodule-recursive}'
1123 build-timeout: '{build-timeout}'
1126 - gerrit-trigger-patch-merged:
1127 server: '{server-name}'
1128 project: '{project}'
1134 name: 'build docker images'
1136 execution-type: PARALLEL
1138 - name: '{project-name}-amd64-{stream}-merge-java'
1139 kill-phase-on: FAILURE
1140 current-parameters: true
1141 - name: '{project-name}-arm64-{stream}-merge-java'
1142 kill-phase-on: NEVER
1143 current-parameters: true
1145 name: 'publish docker manifest'
1146 condition: SUCCESSFUL
1147 execution-type: PARALLEL
1149 - name: '{project-name}-docker-manifest-{stream}'
1150 current-parameters: true
1151 predefined-parameters: |
1152 PARENT_JOB_NAME=$JOB_NAME
1153 DOCKERHUB_REGISTRY=docker.io