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}'
525 build-days-to-keep: '{build-days-to-keep}'
531 refspec: 'refs/heads/{branch}'
532 artifacts: '{archive-artifacts}'
534 maven-version: '{maven-version}'
536 mvn-params: '{mvn-params}'
539 - gerrit-trigger-scm:
541 choosing-strategy: 'default'
542 submodule-recursive: '{submodule-recursive}'
546 build-timeout: '{build-timeout}'
551 - gerrit-trigger-release-manually:
552 server: '{server-name}'
558 - provide-maven-settings:
559 global-settings-file: 'global-settings'
560 settings-file: '{mvn-settings}'
564 - maven-docker-push-daily:
565 maven-version: '{maven-version}'
566 mvn-settings: '{mvn-settings}'
568 # use default as mvn-profile if profile is not needed
569 mvn-profile: '{mvn-profile}'
570 mvn-params: '{mvn-params}'
574 maven-version: '{maven-version}'
577 # Job template for Docker daily jobs
579 # The purpose of this job template is to run:
580 # 1. login to the docker registry
583 # Required Variables:
584 # branch: git branch (eg. stable/lithium or master)
586 <<: *docker_java_defaults
587 name: '{project-name}-{stream}-docker-java-daily'
588 id: docker-java-daily
591 - infra-wrappers-docker-build:
592 build-timeout: '{build-timeout}'
595 # Job template for building & pushing docker images
597 # The purpose of this job template is to run:
598 # 1. login to the docker registry
599 # 2. run a specified shell builder
601 # Required Variables:
602 # pom: name/location of the pom.xml file relative to the workspace
603 # maven-properties: properties passed to maven
605 name: '{project-name}-{stream}-docker-java-shell-daily'
606 project-type: freestyle
608 disabled: '{disabled}'
611 build-days-to-keep: '{build-days-to-keep}'
617 refspec: 'refs/heads/{branch}'
618 artifacts: '{archive-artifacts}'
620 maven-version: '{maven-version}'
623 - gerrit-trigger-scm:
625 choosing-strategy: 'default'
626 submodule-recursive: '{submodule-recursive}'
630 build-timeout: '{build-timeout}'
635 - gerrit-trigger-release-manually:
636 server: '{server-name}'
642 - provide-maven-settings:
643 global-settings-file: 'global-settings'
644 settings-file: '{mvn-settings}'
649 maven-version: '{maven-version}'
651 settings: '{mvn-settings}'
653 global-settings: 'global-settings'
654 global-settings-type: cfp
660 maven-version: '{maven-version}'
663 # Job template for building & pushing docker images
665 # The purpose of this job template is to run:
666 # 1. login to the docker registry
667 # 2. run a specified shell builder
669 # Required Variables:
670 # pom: name/location of the pom.xml file relative to the workspace
671 # maven-properties: properties passed to maven
673 name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
674 project-type: freestyle
676 disabled: '{disabled}'
679 build-days-to-keep: '{build-days-to-keep}'
685 refspec: 'refs/heads/{branch}'
686 artifacts: '{archive-artifacts}'
688 maven-version: '{maven-version}'
691 - gerrit-trigger-scm:
693 choosing-strategy: 'default'
694 submodule-recursive: '{submodule-recursive}'
698 build-timeout: '{build-timeout}'
703 - gerrit-trigger-release-manually:
704 server: '{server-name}'
710 - provide-maven-settings:
711 global-settings-file: 'global-settings'
712 settings-file: '{mvn-settings}'
717 maven-version: '{maven-version}'
720 settings: '{mvn-settings}'
722 global-settings: 'global-settings'
723 global-settings-type: cfp
729 maven-version: '{maven-version}'
732 # Job template for building & pushing docker images
734 # The purpose of this job template is to run:
735 # 1. login to the docker registry
736 # 2. inject a version.properties file and set versions
737 # 3. run a specified shell builder
739 # Required Variables:
740 # pom: name/location of the pom.xml file relative to the workspace
741 # maven-properties: properties passed to maven
743 name: '{project-name}-{stream}-docker-java-version-shell-daily'
744 project-type: freestyle
746 disabled: '{disabled}'
749 build-days-to-keep: '{build-days-to-keep}'
755 refspec: 'refs/heads/{branch}'
756 artifacts: '{archive-artifacts}'
758 maven-version: '{maven-version}'
761 - gerrit-trigger-scm:
763 choosing-strategy: 'default'
764 submodule-recursive: '{submodule-recursive}'
768 build-timeout: '{build-timeout}'
773 - gerrit-trigger-release-manually:
774 server: '{server-name}'
780 - provide-maven-settings:
781 global-settings-file: 'global-settings'
782 settings-file: '{mvn-settings}'
785 properties-file: version.properties
786 - maven-set-release-version:
787 maven-version: '{maven-version}'
788 mvn-settings: '{mvn-settings}'
794 maven-version: '{maven-version}'
796 settings: '{mvn-settings}'
798 global-settings: 'global-settings'
799 global-settings-type: cfp
805 maven-version: '{maven-version}'
808 # Job template for building & pushing docker images
810 # The purpose of this job template is to run:
811 # 1. login to the docker registry
812 # 2. inject a version.properties file and set versions
813 # 3. run a specified shell builder
815 # This template supports subprojects.
817 # Required Variables:
818 # pom: name/location of the pom.xml file relative to the workspace
819 # maven-properties: properties passed to maven
821 name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
822 project-type: freestyle
823 node: 'ubuntu1804-docker-8c-8g'
824 disabled: '{disabled}'
827 build-days-to-keep: '{build-days-to-keep}'
833 refspec: 'refs/heads/{branch}'
834 artifacts: '{archive-artifacts}'
836 maven-version: '{maven-version}'
839 - gerrit-trigger-scm:
841 choosing-strategy: 'default'
842 submodule-recursive: '{submodule-recursive}'
846 build-timeout: '{build-timeout}'
851 - gerrit-trigger-release-manually:
852 server: '{server-name}'
858 - provide-maven-settings:
859 global-settings-file: 'global-settings'
860 settings-file: '{mvn-settings}'
863 properties-file: version.properties
864 - maven-set-release-version:
865 maven-version: '{maven-version}'
866 mvn-settings: '{mvn-settings}'
872 maven-version: '{maven-version}'
875 settings: '{mvn-settings}'
877 global-settings: 'global-settings'
878 global-settings-type: cfp
884 maven-version: '{maven-version}'
886 - job-template: &docker_version_java_defaults
887 # Job template for building & pushing docker images
889 # The purpose of this job template is to run:
890 # 1. login to the docker registry
891 # 2. inject a version.properties file and set versions
892 # 3. run a docker push
894 # Required Variables:
895 # pom: name/location of the pom.xml file relative to the workspace
896 # profile: the docker profile defined in the pom
897 # maven-properties: properties passed to maven
899 name: '{project-name}-{stream}-docker-version-java-daily'
900 id: '{project-name}-{stream}-docker-version-java-daily'
901 project-type: freestyle
903 disabled: '{disabled}'
906 build-days-to-keep: '{build-days-to-keep}'
912 refspec: 'refs/heads/{branch}'
913 artifacts: '{archive-artifacts}'
915 maven-version: '{maven-version}'
917 mvn-params: '{mvn-params}'
920 - gerrit-trigger-scm:
922 choosing-strategy: 'default'
923 submodule-recursive: '{submodule-recursive}'
927 build-timeout: '{build-timeout}'
932 - gerrit-trigger-release-manually:
933 server: '{server-name}'
939 - provide-maven-settings:
940 global-settings-file: 'global-settings'
941 settings-file: '{mvn-settings}'
944 properties-file: version.properties
945 - maven-set-release-version:
946 maven-version: '{maven-version}'
947 mvn-settings: '{mvn-settings}'
952 - maven-docker-push-daily:
953 maven-version: '{maven-version}'
954 mvn-settings: '{mvn-settings}'
956 # use default as mvn-profile if profile is not needed
957 mvn-profile: '{mvn-profile}'
958 mvn-params: '{mvn-params}'
962 maven-version: '{maven-version}'
965 # Job template for building & pushing docker images
967 # The purpose of this job template is to run:
968 # 1. login to the docker registry
969 # 2. inject a version.properties file and set versions
970 # 3. run a docker push
972 # Required Variables:
973 # pom: name/location of the pom.xml file relative to the workspace
974 # profile: the docker profile defined in the pom
975 # maven-properties: properties passed to maven
977 <<: *docker_version_java_defaults
978 name: '{project-name}-{stream}-docker-version-java-daily'
979 id: 'docker-version-java-daily'
982 - infra-wrappers-docker-build:
983 build-timeout: '{build-timeout}'
986 # Job template for building & pushing docker images for AAI specific repos
988 # The purpose of this job template is to run:
989 # 1. login to the docker registry
991 # 3. run include-docker-push.sh
993 # Required Variables:
994 # pom: name/location of the pom.xml file relative to the workspace
995 # maven-properties: properties passed to maven
997 name: '{project-name}-{stream}-aai-docker-java-daily'
998 project-type: freestyle
1000 docker-image-name: ''
1001 disabled: '{disabled}'
1004 build-days-to-keep: '{build-days-to-keep}'
1008 project: '{project}'
1010 refspec: 'refs/heads/{branch}'
1011 artifacts: '{archive-artifacts}'
1013 maven-version: '{maven-version}'
1014 - docker-image-name:
1015 docker-image-name: '{docker-image-name}'
1018 - gerrit-trigger-scm:
1020 choosing-strategy: 'default'
1021 submodule-recursive: '{submodule-recursive}'
1025 build-timeout: '{build-timeout}'
1030 - gerrit-trigger-release-manually:
1031 server: '{server-name}'
1032 project: '{project}'
1036 - lf-infra-pre-build
1037 - provide-maven-settings:
1038 global-settings-file: 'global-settings'
1039 settings-file: '{mvn-settings}'
1044 maven-version: '{maven-version}'
1046 goals: 'clean install -DskipTests -B
1047 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1048 settings: '{mvn-settings}'
1050 global-settings: 'global-settings'
1051 global-settings-type: cfp
1054 maven-version: '{maven-version}'
1056 goals: '{mvn-goals}'
1057 settings: '{mvn-settings}'
1059 global-settings: 'global-settings'
1060 global-settings-type: cfp
1062 - maven.test.skip=true
1063 - docker.pull.registry=nexus3.onap.org:10001
1064 - docker.push.registry=nexus3.onap.org:10003
1066 - shell: !include-raw-escape: include-docker-push.sh
1070 maven-version: '{maven-version}'
1073 # Job template for Java merge jobs for SDC specific repos
1075 # The purpose of this job template is to run:
1076 # 1. maven clean deploy
1078 # Required Variables:
1079 # branch: git branch (eg. stable/lithium or master)
1081 <<: *merge_java_defaults
1082 name: '{project-name}-{stream}-sdc-merge-java'
1084 node: '{build-node}'
1088 - lf-infra-pre-build
1089 - provide-maven-settings:
1090 global-settings-file: 'global-settings'
1091 settings-file: '{mvn-settings}'
1095 - maven-docker-push-daily:
1096 maven-version: '{maven-version}'
1097 mvn-settings: '{mvn-settings}'
1099 # use default as mvn-profile if profile is not needed
1100 mvn-profile: '{mvn-profile}'
1104 # Job template for Java merge jobs on multiple architectures
1106 # The purpose of this job template is to:
1107 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1108 # 2. Build and push a docker manifest list for the images created by
1111 name: '{project-name}-multiarch-{stream}-merge-java'
1112 node: '{build-node}'
1113 project-type: multijob
1114 disabled: '{obj:disabled}'
1118 - lf-infra-parameters:
1119 project: '{project}'
1123 name: DOCKER_REGISTRY
1126 name: DOCKERHUB_REGISTRY
1127 default: 'registry-1.docker.io'
1134 use-build-blocker: true
1136 - '{project-name}-.*-merge-.*'
1137 blocking-level: 'NODE'
1140 - gerrit-trigger-scm:
1142 choosing-strategy: 'default'
1143 submodule-recursive: '{submodule-recursive}'
1147 build-timeout: '{build-timeout}'
1150 - gerrit-trigger-patch-merged:
1151 server: '{server-name}'
1152 project: '{project}'
1158 name: 'build docker images'
1160 execution-type: PARALLEL
1162 - name: '{project-name}-amd64-{stream}-merge-java'
1163 kill-phase-on: FAILURE
1164 current-parameters: true
1165 - name: '{project-name}-arm64-{stream}-merge-java'
1166 kill-phase-on: NEVER
1167 current-parameters: true
1169 name: 'publish docker manifest'
1170 condition: SUCCESSFUL
1171 execution-type: PARALLEL
1173 - name: '{project-name}-docker-manifest-{stream}'
1174 current-parameters: true
1175 predefined-parameters: |
1176 PARENT_JOB_NAME=$JOB_NAME
1177 DOCKERHUB_REGISTRY=docker.io