Feat!: Upgrade Jenkins-job-builder to 6x
[releng/global-jjb.git] / jjb / lf-maven-jobs.yaml
index 73a4744..aba6b9b 100644 (file)
@@ -17,7 +17,7 @@
 - builder:
     name: lf-maven-deploy
     builders:
-      - shell: !include-raw:
+      - shell: !include-raw-escape:
           - ../shell/common-variables.sh
           - ../shell/maven-deploy.sh
 
@@ -72,7 +72,7 @@
 # COMMON FUNCTIONS #
 ####################
 
-- lf_maven_common: &lf_maven_common
+- _lf_maven_common: &lf_maven_common
     name: lf-maven-common
 
     ######################
 # Maven CLM #
 #############
 
-- lf_maven_clm: &lf_maven_clm
+- _lf_maven_clm: &lf_maven_clm
     name: lf-maven-clm
 
     ######################
 # Maven Snyk CLI #
 ##################
 
-- lf_maven_snyk_cli: &lf_maven_snyk_cli
+- _lf_maven_snyk_cli: &lf_maven_snyk_cli
     name: lf-maven-snyk_cli
 
     ######################
     mvn-opts: ""
     mvn-params: ""
     mvn-version: mvn35
+    snyk-cli-options: ""
     snyk-token-credential-id: snyk-token
     snyk-org-credential-id: snyk-org
     stream: master
           mvn-opts: "{mvn-opts}"
           mvn-params: "{mvn-params}"
           mvn-version: "{mvn-version}"
+      - string:
+          name: SNYK_CLI_OPTIONS
+          default: "{snyk-cli-options}"
+          description: Additional Snyk CLI commands and options
       - string:
           name: ARCHIVE_ARTIFACTS
           default: "{archive-artifacts}"
 # Maven Javadoc Publish #
 #########################
 
-- lf_maven_javadoc_publish: &lf_maven_javadoc_publish
+- _lf_maven_javadoc_publish: &lf_maven_javadoc_publish
     name: lf-maven-javadoc-publish
 
     ######################
 # Maven Javadoc Verify #
 ########################
 
-- lf_maven_javadoc_verify: &lf_maven_javadoc_verify
+- _lf_maven_javadoc_verify: &lf_maven_javadoc_verify
     name: lf-maven-javadoc-verify
 
     ######################
 # Maven Merge #
 ###############
 
-- lf_maven_merge: &lf_maven_merge
+- _lf_maven_merge: &lf_maven_merge
     name: lf-maven-merge
 
     ######################
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
     github-url: "https://github.com"
+    jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
     java-version: openjdk11
     mvn-global-settings: global-settings
     mvn-goals: clean deploy
 
     publishers:
       - findbugs
-      - lf-jacoco-report
+      - lf-jacoco-report:
+          exclude-pattern: "{jacoco-exclude-pattern}"
       - lf-infra-publish
       - trigger-parameterized-builds: "{obj:post_build_trigger}"
 
 # Maven Merge for Docker #
 ##########################
 
-- lf_maven_docker_merge: &lf_maven_docker_merge
+- _lf_maven_docker_merge: &lf_maven_docker_merge
     name: lf-maven-docker-merge
 
     builders:
 # Maven Stage #
 ###############
 
-- lf_maven_stage: &lf_maven_stage
+- _lf_maven_stage: &lf_maven_stage
     name: lf-maven-stage
 
     ######################
     branch: master
     build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
     build-timeout: 60
-    cron: "@daily"
+    cron: ""
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
     github-url: "https://github.com"
 # Maven Stage for Docker #
 ##########################
 
-- lf_maven_docker_stage: &lf_maven_docker_stage
+- _lf_maven_docker_stage: &lf_maven_docker_stage
     name: lf-maven-docker-stage
 
     builders:
             CONTAINER_PUSH_REGISTRY={container-staging-registry}
       - lf-maven-build:
           mvn-goals: "{mvn-goals}"
+      # With SBOM Generator
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: "{sbom-generator}"
+          steps:
+            - shell: echo 'Running SBOM Generator'
+            - lf-infra-maven-sbom-generator:
+                sbom-flags: "{sbom-flags}"
       - lf-sigul-sign-dir:
           sign-artifacts: "{sign-artifacts}"
           sign-dir: "$WORKSPACE/m2repo"
 # Maven Sonar #
 ###############
 
-- lf_maven_sonar: &lf_maven_sonar
+- _lf_maven_sonar: &lf_maven_sonar
     name: lf-maven-sonar
 
     ######################
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
     github-url: "https://github.com"
+    jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
     java-version: openjdk11
     java-opts: ""
     mvn-global-settings: global-settings
     sonarcloud-project-organization: ""
     sonarcloud-api-token-cred-id: sonarcloud-api-token
     sonarcloud-qualitygate-wait: false
-    # SonarCloud scan using jdk8 will become deprecated by Oct, 2020
-    # Projects not compatible with jdk11 can set java-version to something else
-    sonarcloud-java-version: openjdk11
+    # Projects not compatible with jdk17 can set java-version to something else
+    sonarcloud-java-version: openjdk17
     stream: master
     submodule-recursive: true
     submodule-timeout: 10
     wrappers:
       - credentials-binding:
           - text:
-              credential-id: '{sonarcloud-api-token-cred-id}'
+              credential-id: "{sonarcloud-api-token-cred-id}"
               variable: API_TOKEN
 
     triggers:
             notbuilt: true
 
     publishers:
-      - lf-jacoco-report
+      - lf-jacoco-report:
+          exclude-pattern: "{jacoco-exclude-pattern}"
       - findbugs
       - lf-infra-publish
 
-- mvn_sonar_builders: &mvn_sonar_builders
+- _mvn_sonar_builders: &mvn_sonar_builders
     name: mvn-sonar-builders
     builders:
       - lf-infra-pre-build
                 mvn-settings: "{mvn-settings}"
                 mvn-version: "{mvn-version}"
 
-- mvn_sonar_builders_prescan_script: &mvn_sonar_builders_prescan_script
+- _mvn_sonar_builders_prescan_script: &mvn_sonar_builders_prescan_script
     name: mvn-sonar-builders-prescan-script
     builders:
       - shell: "{sonar-prescan-script}"
 # Maven Verify #
 ################
 
-- lf_maven_verify: &lf_maven_verify
+- _lf_maven_verify: &lf_maven_verify
     name: lf-maven-verify
 
     ######################
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
     github-url: "https://github.com"
+    jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
     java-version: openjdk11
     mvn-global-settings: global-settings
     mvn-goals: clean deploy
 
     publishers:
       - findbugs
-      - lf-jacoco-report
+      - lf-jacoco-report:
+          exclude-pattern: "{jacoco-exclude-pattern}"
       - lf-infra-publish
 
 - job-template:
 # Maven Verify for Docker #
 ###########################
 
-- lf_maven_docker_verify: &lf_maven_docker_verify
+- _lf_maven_docker_verify: &lf_maven_docker_verify
     name: lf-maven-docker-verify
 
     # image push not allowed during verification
 # Maven Verify Dependencies #
 #############################
 
-- lf_maven_verify_dependencies: &lf_maven_verify_dependencies
+- _lf_maven_verify_dependencies: &lf_maven_verify_dependencies
     name: lf-maven-verify-dependencies
 
     ######################
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
     github-url: "https://github.com"
+    jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
     java-version: openjdk11
     mvn-global-settings: global-settings
     mvn-goals: clean deploy
 
     publishers:
       - findbugs
-      - lf-jacoco-report
+      - lf-jacoco-report:
+          exclude-pattern: "{jacoco-exclude-pattern}"
       - lf-infra-publish
 
 - job-template: