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 # yamllint disable rule:line-length
67 goals: "clean install -B
68 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn {mvn-params}"
71 - MAVEN_OPTS='{mvn-opts}'
74 settings: "{mvn-settings}"
76 global-settings: "global-settings"
77 global-settings-type: cfp
83 # Job template for Java verify jobs running checkstyle at the end
84 # When checkstyle will be fully incorporated, it is meant to replace
85 # '{project-name}-{stream}-verify-java-checkstyle'
87 # The purpose of this job template is to run:
88 # 1. maven clean install
90 # This job publishes checkstyle results.
93 # branch: git branch (eg. stable/lithium or master)
95 <<: *verify_java_defaults
96 name: "{project-name}-{stream}-verify-java-checkstyle"
103 # Job template for Java verify jobs with POM not at the root
105 # The purpose of this job template is to run:
106 # 1. maven clean install
108 # This job supports subprojects.
110 # Required Variables:
111 # branch: git branch (eg. stable/lithium or master)
112 # pom: name/location of the pom.xml file relative to the workspace
113 # pattern: ant file-path pattern relative to the workspace used to
116 <<: *verify_java_defaults
117 name: "{project-name}-{stream}-{subproject}-verify-java"
120 # Job template for Java integration pairwise jobs
122 # The purpose of this job template is to run:
123 # 1. maven clean install
125 # Required Variables:
126 # branch: git branch (eg. stable/lithium or master)
128 <<: *verify_java_defaults
129 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
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}"
177 - gerrit-trigger-release-manually:
178 server: "{server-name}"
183 - provide-maven-settings:
184 global-settings-file: "global-settings"
185 settings-file: "{mvn-settings}"
187 condition-kind: regex-match
189 label: "{setVersion}"
192 properties-file: version.properties
193 - maven-set-release-version:
194 maven-version: "{maven-version}"
195 mvn-settings: "{mvn-settings}"
198 maven-version: "{maven-version}"
199 goals: "clean deploy -B
200 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
201 properties: "{obj:mvn_properties}"
202 settings: "{mvn-settings}"
204 global-settings: "global-settings"
205 global-settings-type: cfp
209 - checkstyle-result-daily
212 # Job template for Java daily release jobs
214 # The purpose of this job template is to run:
215 # 1. maven set versions
216 # 2. maven clean deploy with Sonar scans
218 # Required Variables:
219 # branch: git branch (eg. stable/lithium or master)
221 name: "{project-name}-{stream}-release-version-java-daily"
223 project-type: freestyle
226 maven-deploy-properties:
229 build-days-to-keep: "{build-days-to-keep}"
235 refspec: "refs/heads/{branch}"
236 artifacts: "{archive-artifacts}"
238 maven-version: "{maven-version}"
241 - gerrit-trigger-scm:
243 choosing-strategy: "default"
244 submodule-recursive: "{submodule-recursive}"
248 build-timeout: "{build-timeout}"
252 - gerrit-trigger-release-manually:
253 server: "{server-name}"
259 - provide-maven-settings:
260 global-settings-file: "global-settings"
261 settings-file: "{mvn-settings}"
264 properties-file: version.properties
265 - maven-set-release-version:
266 maven-version: "{maven-version}"
267 mvn-settings: "{mvn-settings}"
271 maven-version: "{maven-version}"
272 goals: "clean deploy -B
273 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
275 - "{maven-deploy-properties}"
276 settings: "{mvn-settings}"
278 global-settings: "global-settings"
279 global-settings-type: cfp
284 - job-template: &merge_java_defaults
285 # Job template for Java merge jobs
287 # The purpose of this job template is to run:
288 # 1. maven clean deploy
290 # Required Variables:
291 # branch: git branch (eg. stable/lithium or master)
293 name: "{project-name}-{stream}-merge-java"
295 project-type: freestyle
303 java-version: openjdk8
307 build-days-to-keep: "{build-days-to-keep}"
313 refspec: "refs/heads/{branch}"
314 artifacts: "{archive-artifacts}"
316 maven-version: "{maven-version}"
319 - gerrit-trigger-scm:
321 choosing-strategy: "default"
322 submodule-recursive: "{submodule-recursive}"
326 build-timeout: "{build-timeout}"
327 jenkins-ssh-credential: "{jenkins-ssh-credential}"
330 - gerrit-trigger-patch-merged:
331 server: "{server-name}"
338 - lf-update-java-alternatives:
339 java-version: "{java-version}"
340 - provide-maven-settings:
341 global-settings-file: "global-settings"
342 settings-file: "{mvn-settings}"
344 condition-kind: regex-match
345 regex: .*(amd64|arm64).*
346 label: "{project-name}"
348 - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
350 maven-version: "{maven-version}"
352 goals: "clean deploy -B {mvn-params}
353 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
356 settings: "{mvn-settings}"
358 global-settings: "global-settings"
359 global-settings-type: cfp
360 properties: "{obj:mvn_properties}"
366 # Job template for Java merge jobs based on
367 # '{project-name}-{stream}-merge-java'
368 # The purpose of this job template is to run:
369 # 1. maven clean deploy
371 # This project supports maven properties.
373 # Required Variables:
374 # branch: git branch (eg. stable/lithium or master)
375 # maven-properties: properties passed to maven
377 <<: *merge_java_defaults
378 name: "{project-name}-{stream}-merge-properties-java"
382 build-timeout: "{build-timeout}"
383 jenkins-ssh-credential: "{jenkins-ssh-credential}"
386 # Job template for Java merge jobs that takes a maven template
388 # The purpose of this job template is to run:
389 # 1. maven clean deploy -P {mvn-profile}
391 # Required Variables:
392 # branch: git branch (eg. stable/lithium or master)
394 <<: *merge_java_defaults
395 name: "{project-name}-{stream}-merge-profile-java"
399 - provide-maven-settings:
400 global-settings-file: "global-settings"
401 settings-file: "{mvn-settings}"
406 maven-version: "{maven-version}"
407 goals: "clean deploy -P {mvn-profile} -B
408 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
409 settings: "{mvn-settings}"
411 global-settings: "global-settings"
412 global-settings-type: cfp
414 - docker.pull.registry=nexus3.onap.org:10001
415 - docker.push.registry=nexus3.onap.org:10003
418 # Job template for Java merge jobs with POM not at the root
420 # The purpose of this job template is to run:
421 # 1. maven clean deploy
423 # This job supports subprojects.
425 # Required Variables:
426 # branch: git branch (eg. stable/lithium or master)
427 # pom: name/location of the pom.xml file relative to the workspace
428 # pattern: ant file-path pattern relative to the workspace used to
431 <<: *merge_java_defaults
432 name: "{project-name}-{stream}-{subproject}-merge-java"
434 - job-template: &docker_java_defaults
435 # Job template for Docker daily jobs
437 # The purpose of this job template is to run:
438 # 1. login to the docker registry
441 # Required Variables:
442 # branch: git branch (eg. stable/lithium or master)
444 name: "{project-name}-{stream}-docker-java-daily"
445 id: "{project-name}-{stream}-docker-java-daily"
446 project-type: freestyle
449 java-version: openjdk8
452 build-days-to-keep: "{build-days-to-keep}"
458 refspec: "refs/heads/{branch}"
459 artifacts: "{archive-artifacts}"
461 maven-version: "{maven-version}"
463 mvn-params: "{mvn-params}"
466 - gerrit-trigger-scm:
468 choosing-strategy: "default"
469 submodule-recursive: "{submodule-recursive}"
473 build-timeout: "{build-timeout}"
477 - gerrit-trigger-release-manually:
478 server: "{server-name}"
484 - lf-update-java-alternatives:
485 java-version: "{java-version}"
487 - provide-maven-settings:
488 global-settings-file: "global-settings"
489 settings-file: "{mvn-settings}"
493 - maven-docker-push-daily:
494 maven-version: "{maven-version}"
495 mvn-settings: "{mvn-settings}"
497 # use default as mvn-profile if profile is not needed
498 mvn-profile: "{mvn-profile}"
499 mvn-params: "{mvn-params}"
505 # Job template for Docker daily jobs
507 # The purpose of this job template is to run:
508 # 1. login to the docker registry
511 # Required Variables:
512 # branch: git branch (eg. stable/lithium or master)
514 <<: *docker_java_defaults
515 name: "{project-name}-{stream}-docker-java-daily"
516 id: docker-java-daily
519 - infra-wrappers-docker-build:
520 build-timeout: "{build-timeout}"
523 # Job template for building & pushing docker images
525 # The purpose of this job template is to run:
526 # 1. login to the docker registry
527 # 2. run a specified shell builder
529 # Required Variables:
530 # pom: name/location of the pom.xml file relative to the workspace
531 # maven-properties: properties passed to maven
533 name: "{project-name}-{stream}-docker-java-shell-daily"
534 project-type: freestyle
539 build-days-to-keep: "{build-days-to-keep}"
545 refspec: "refs/heads/{branch}"
546 artifacts: "{archive-artifacts}"
548 maven-version: "{maven-version}"
551 - gerrit-trigger-scm:
553 choosing-strategy: "default"
554 submodule-recursive: "{submodule-recursive}"
558 build-timeout: "{build-timeout}"
562 - gerrit-trigger-release-manually:
563 server: "{server-name}"
569 - provide-maven-settings:
570 global-settings-file: "global-settings"
571 settings-file: "{mvn-settings}"
576 maven-version: "{maven-version}"
578 settings: "{mvn-settings}"
580 global-settings: "global-settings"
581 global-settings-type: cfp
589 # Job template for building & pushing docker images
591 # The purpose of this job template is to run:
592 # 1. login to the docker registry
593 # 2. run a specified shell builder
595 # Required Variables:
596 # pom: name/location of the pom.xml file relative to the workspace
597 # maven-properties: properties passed to maven
599 name: "{project-name}-{stream}-{subproject}-docker-java-shell-daily"
600 project-type: freestyle
605 build-days-to-keep: "{build-days-to-keep}"
611 refspec: "refs/heads/{branch}"
612 artifacts: "{archive-artifacts}"
614 maven-version: "{maven-version}"
617 - gerrit-trigger-scm:
619 choosing-strategy: "default"
620 submodule-recursive: "{submodule-recursive}"
624 build-timeout: "{build-timeout}"
628 - gerrit-trigger-release-manually:
629 server: "{server-name}"
635 - provide-maven-settings:
636 global-settings-file: "global-settings"
637 settings-file: "{mvn-settings}"
642 maven-version: "{maven-version}"
645 settings: "{mvn-settings}"
647 global-settings: "global-settings"
648 global-settings-type: cfp
656 # Job template for building & pushing docker images
658 # The purpose of this job template is to run:
659 # 1. login to the docker registry
660 # 2. inject a version.properties file and set versions
661 # 3. run a specified shell builder
663 # Required Variables:
664 # pom: name/location of the pom.xml file relative to the workspace
665 # maven-properties: properties passed to maven
667 name: "{project-name}-{stream}-docker-java-version-shell-daily"
668 project-type: freestyle
673 build-days-to-keep: "{build-days-to-keep}"
679 refspec: "refs/heads/{branch}"
680 artifacts: "{archive-artifacts}"
682 maven-version: "{maven-version}"
685 - gerrit-trigger-scm:
687 choosing-strategy: "default"
688 submodule-recursive: "{submodule-recursive}"
692 build-timeout: "{build-timeout}"
696 - gerrit-trigger-release-manually:
697 server: "{server-name}"
703 - provide-maven-settings:
704 global-settings-file: "global-settings"
705 settings-file: "{mvn-settings}"
708 properties-file: version.properties
709 - maven-set-release-version:
710 maven-version: "{maven-version}"
711 mvn-settings: "{mvn-settings}"
717 maven-version: "{maven-version}"
719 settings: "{mvn-settings}"
721 global-settings: "global-settings"
722 global-settings-type: cfp
730 # Job template for building & pushing docker images
732 # The purpose of this job template is to run:
733 # 1. login to the docker registry
734 # 2. inject a version.properties file and set versions
735 # 3. run a specified shell builder
737 # This template supports subprojects.
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}-{subproject}-docker-java-version-shell-daily"
744 project-type: freestyle
745 node: "ubuntu1804-docker-8c-8g"
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}"
772 - gerrit-trigger-release-manually:
773 server: "{server-name}"
779 - provide-maven-settings:
780 global-settings-file: "global-settings"
781 settings-file: "{mvn-settings}"
784 properties-file: version.properties
785 - maven-set-release-version:
786 maven-version: "{maven-version}"
787 mvn-settings: "{mvn-settings}"
793 maven-version: "{maven-version}"
796 settings: "{mvn-settings}"
798 global-settings: "global-settings"
799 global-settings-type: cfp
806 - job-template: &docker_version_java_defaults
807 # Job template for building & pushing docker images
809 # The purpose of this job template is to run:
810 # 1. login to the docker registry
811 # 2. inject a version.properties file and set versions
812 # 3. run a docker push
814 # Required Variables:
815 # pom: name/location of the pom.xml file relative to the workspace
816 # profile: the docker profile defined in the pom
817 # maven-properties: properties passed to maven
819 name: "{project-name}-{stream}-docker-version-java-daily"
820 id: "{project-name}-{stream}-docker-version-java-daily"
821 project-type: freestyle
826 build-days-to-keep: "{build-days-to-keep}"
832 refspec: "refs/heads/{branch}"
833 artifacts: "{archive-artifacts}"
835 maven-version: "{maven-version}"
837 mvn-params: "{mvn-params}"
840 - gerrit-trigger-scm:
842 choosing-strategy: "default"
843 submodule-recursive: "{submodule-recursive}"
847 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}"
871 - maven-docker-push-daily:
872 maven-version: "{maven-version}"
873 mvn-settings: "{mvn-settings}"
875 # use default as mvn-profile if profile is not needed
876 mvn-profile: "{mvn-profile}"
877 mvn-params: "{mvn-params}"
883 # Job template for building & pushing docker images
885 # The purpose of this job template is to run:
886 # 1. login to the docker registry
887 # 2. inject a version.properties file and set versions
888 # 3. run a docker push
890 # Required Variables:
891 # pom: name/location of the pom.xml file relative to the workspace
892 # profile: the docker profile defined in the pom
893 # maven-properties: properties passed to maven
895 <<: *docker_version_java_defaults
896 name: "{project-name}-{stream}-docker-version-java-daily"
897 id: "docker-version-java-daily"
900 - infra-wrappers-docker-build:
901 build-timeout: "{build-timeout}"
904 # Job template for building & pushing docker images for AAI specific repos
906 # The purpose of this job template is to run:
907 # 1. login to the docker registry
909 # 3. run include-docker-push.sh
911 # Required Variables:
912 # pom: name/location of the pom.xml file relative to the workspace
913 # maven-properties: properties passed to maven
915 name: "{project-name}-{stream}-aai-docker-java-daily"
916 project-type: freestyle
918 docker-image-name: ""
920 java-version: "openjdk8"
923 build-days-to-keep: "{build-days-to-keep}"
929 refspec: "refs/heads/{branch}"
930 artifacts: "{archive-artifacts}"
932 maven-version: "{maven-version}"
934 docker-image-name: "{docker-image-name}"
937 - gerrit-trigger-scm:
939 choosing-strategy: "default"
940 submodule-recursive: "{submodule-recursive}"
944 build-timeout: "{build-timeout}"
948 - gerrit-trigger-release-manually:
949 server: "{server-name}"
955 - lf-update-java-alternatives:
956 java-version: "{java-version}"
957 - provide-maven-settings:
958 global-settings-file: "global-settings"
959 settings-file: "{mvn-settings}"
964 maven-version: "{maven-version}"
966 goals: "clean install -DskipTests -B
967 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
968 settings: "{mvn-settings}"
970 global-settings: "global-settings"
971 global-settings-type: cfp
974 maven-version: "{maven-version}"
977 settings: "{mvn-settings}"
979 global-settings: "global-settings"
980 global-settings-type: cfp
982 - maven.test.skip=true
983 - docker.pull.registry=nexus3.onap.org:10001
984 - docker.push.registry=nexus3.onap.org:10003
986 - shell: !include-raw-escape: include-docker-push.sh
992 # Job template for Java merge jobs for SDC specific repos
994 # The purpose of this job template is to run:
995 # 1. maven clean deploy
997 # Required Variables:
998 # branch: git branch (eg. stable/lithium or master)
1000 <<: *merge_java_defaults
1001 name: "{project-name}-{stream}-sdc-merge-java"
1003 node: "{build-node}"
1007 - lf-infra-pre-build
1008 - lf-update-java-alternatives:
1009 java-version: "{java-version}"
1010 - provide-maven-settings:
1011 global-settings-file: "global-settings"
1012 settings-file: "{mvn-settings}"
1016 - maven-docker-push-daily:
1017 maven-version: "{maven-version}"
1018 mvn-settings: "{mvn-settings}"
1020 # use default as mvn-profile if profile is not needed
1021 mvn-profile: "{mvn-profile}"
1025 # Job template for Java merge jobs on multiple architectures
1027 # The purpose of this job template is to:
1028 # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1029 # 2. Build and push a docker manifest list for the images created by
1032 name: "{project-name}-multiarch-{stream}-merge-java"
1033 node: "{build-node}"
1034 project-type: multijob
1035 disabled: "{obj:disabled}"
1039 - lf-infra-parameters:
1040 project: "{project}"
1044 name: DOCKER_REGISTRY
1047 name: DOCKERHUB_REGISTRY
1048 default: "registry-1.docker.io"
1055 use-build-blocker: true
1057 - "{project-name}-.*-merge-.*"
1058 blocking-level: "NODE"
1061 - gerrit-trigger-scm:
1063 choosing-strategy: "default"
1064 submodule-recursive: "{submodule-recursive}"
1068 build-timeout: "{build-timeout}"
1071 - gerrit-trigger-patch-merged:
1072 server: "{server-name}"
1073 project: "{project}"
1079 name: "build docker images"
1081 execution-type: PARALLEL
1083 - name: "{project-name}-amd64-{stream}-merge-java"
1084 kill-phase-on: FAILURE
1085 current-parameters: true
1086 - name: "{project-name}-arm64-{stream}-merge-java"
1087 kill-phase-on: NEVER
1088 current-parameters: true
1090 name: "publish docker manifest"
1091 condition: SUCCESSFUL
1092 execution-type: PARALLEL
1094 - name: "{project-name}-docker-manifest-{stream}"
1095 current-parameters: true
1096 predefined-parameters: |
1097 PARENT_JOB_NAME=$JOB_NAME
1098 DOCKERHUB_REGISTRY=docker.io