Hardcode WSS project version
[releng/global-jjb.git] / jjb / lf-maven-jobs.yaml
index eb2c701..dea836b 100644 (file)
           - ../shell/common-variables.sh
           - ../shell/maven-deploy.sh
 
+- builder:
+    name: lf-maven-versions-plugin
+    builders:
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{maven-versions-plugin}'
+          steps:
+            - inject:
+                properties-file: version.properties
+            - maven-target:
+                maven-version: '{mvn-version}'
+                pom: '{mvn-pom}'
+                goals: 'versions:set versions:update-child-modules versions:commit -B'
+                properties:
+                  - 'newVersion=${{maven-versions-plugin-set-version}}'
+                settings: '{mvn-settings}'
+                settings-type: cfp
+                global-settings: 'global-settings'
+                global-settings-type: cfp
+
 - builder:
     name: lf-maven-stage
     builders:
+      - lf-provide-maven-settings:
+          global-settings-file: '{mvn-global-settings}'
+          settings-file: '{mvn-settings}'
+      - lf-infra-create-netrc:
+          server-id: '{mvn-staging-id}'
       # include-raw-escape fails due to JJB bug
-      - shell: !include-raw:
+      - shell: !include-raw-escape:
           - ../shell/common-variables.sh
           - ../shell/maven-stage.sh
+      - lf-provide-maven-settings-cleanup
 
 - builder:
     name: lf-update-java-alternatives
       - lf-provide-maven-settings-cleanup
 
 - job-template:
-    name: '{project-name}-maven-javadoc-publish-{stream}'
+    name: '{project-name}-maven-javadoc-publish-{stream}-{java-version}'
     id: gerrit-maven-javadoc-publish
     <<: *lf_maven_common
     # yamllint disable-line rule:key-duplicates
                   branch-pattern: '**/{branch}'
 
 - job-template:
-    name: '{project-name}-maven-javadoc-publish-{stream}'
+    name: '{project-name}-maven-javadoc-publish-{stream}-{java-version}'
     id: github-maven-javadoc-publish
     <<: *lf_maven_common
     # yamllint disable-line rule:key-duplicates
       - lf-provide-maven-settings-cleanup
 
 - job-template:
-    name: '{project-name}-maven-javadoc-verify-{stream}'
+    name: '{project-name}-maven-javadoc-verify-{stream}-{java-version}'
     id: gerrit-maven-javadoc-verify
     <<: *lf_maven_common
     # yamllint disable-line rule:key-duplicates
                   branch-pattern: '**/{branch}'
 
 - job-template:
-    name: '{project-name}-maven-javadoc-verify-{stream}'
+    name: '{project-name}-maven-javadoc-verify-{stream}-{java-version}'
     id: github-maven-javadoc-verify
     <<: *lf_maven_common
     # yamllint disable-line rule:key-duplicates
     git-url: '$GIT_URL/$PROJECT'
     github-url: 'https://github.com'
     java-version: openjdk8
+    maven-versions-plugin: false
+    maven-versions-plugin-set-version: ''
     mvn-central: false
     mvn-global-settings: global-settings
     mvn-goals: clean deploy
     mvn-params: ''
     mvn-version: mvn35
     ossrh-profile-id: ''
+    mvn-pom: ''
     sign-artifacts: false
+    sign-mode: serial
     stream: master
     submodule-recursive: true
     submodule-timeout: 10
       - lf-provide-maven-settings:
           global-settings-file: '{mvn-global-settings}'
           settings-file: '{mvn-settings}'
-      - lf-infra-create-netrc:
-          server-id: '{mvn-staging-id}'
       - shell: !include-raw-escape: ../shell/maven-patch-release.sh
+      - lf-maven-versions-plugin:
+          maven-versions-plugin: '{maven-versions-plugin}'
+          mvn-version: '{mvn-version}'
+          mvn-pom: '{mvn-pom}'
+          maven-versions-plugin-set-version: '{maven-versions-plugin-set-version}'
+          mvn-settings: '{mvn-settings}'
       - lf-maven-build:
           mvn-goals: '{mvn-goals}'
       - lf-sigul-sign-dir:
           sign-artifacts: '{sign-artifacts}'
           sign-dir: '$WORKSPACE/m2repo'
-      - lf-maven-stage
-      - conditional-step:
-          condition-kind: boolean-expression
-          condition-expression: '{mvn-central}'
-          steps:
-            - lf-infra-create-netrc:
-                server-id: 'ossrh'
-            - inject:
-                properties-content: 'OSSRH_PROFILE_ID={ossrh-profile-id}'
-            - shell: !include-raw-escape: ../shell/maven-central.sh
+          sign-mode: '{sign-mode}'
+      - lf-maven-stage:
+          mvn-global-settings: '{mvn-global-settings}'
+          mvn-settings: '{mvn-settings}'
+          mvn-staging-id: '{mvn-staging-id}'
+      - lf-maven-central:
+          mvn-central: '{mvn-central}'
+          mvn-global-settings: '{mvn-global-settings}'
+          mvn-settings: '{mvn-settings}'
+          ossrh-profile-id: '{ossrh-profile-id}'
       - lf-provide-maven-settings-cleanup
 
 - job-template:
     mvn-params: ''
     mvn-version: mvn35
     sonar-mvn-goal: 'sonar:sonar'
+    sonarcloud: false
+    sonarcloud-project-key: ''
+    sonarcloud-project-organization: ''
+    sonarcloud-api-token: ''
     stream: master
     submodule-recursive: true
     submodule-timeout: 10
 
     builders:
       - lf-infra-pre-build
-      - lf-infra-maven-sonar:
-          java-version: '{java-version}'
-          mvn-settings: '{mvn-settings}'
-          mvn-version: '{mvn-version}'
+      # With SonarCloud
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{sonarcloud}'
+          steps:
+            - shell: echo 'Using SonarCloud'
+            - lf-infra-maven-sonarcloud:
+                java-version: '{java-version}'
+                mvn-settings: '{mvn-settings}'
+                mvn-version: '{mvn-version}'
+                sonarcloud-project-key: '{sonarcloud-project-key}'
+                sonarcloud-project-organization: '{sonarcloud-project-organization}'
+                sonarcloud-api-token: '{sonarcloud-api-token}'
+      # With SonarQube
+      - conditional-step:
+          condition-kind: not
+          condition-operand:
+            condition-kind: boolean-expression
+            condition-expression: '{sonarcloud}'
+          steps:
+            - shell: echo 'Using SonarQube'
+            - lf-infra-maven-sonar:
+                java-version: '{java-version}'
+                mvn-settings: '{mvn-settings}'
+                mvn-version: '{mvn-version}'
 
     publishers:
       - lf-jacoco-report
           - ../shell/maven-sonar.sh
       - lf-provide-maven-settings-cleanup
 
+- builder:
+    name: lf-infra-maven-sonarcloud
+    # Run a Sonar build with Maven
+    builders:
+      - lf-maven-install:
+          mvn-version: '{mvn-version}'
+      - lf-update-java-alternatives:
+          java-version: '{java-version}'
+      - inject:
+          # Switch this to the sonar wrapper when JJB 2.0 is available
+          properties-content: |
+            SONAR_HOST_URL=https://sonarcloud.io
+            PROJECT_KEY={sonarcloud-project-key}
+            PROJECT_ORGANIZATION={sonarcloud-project-organization}
+            API_TOKEN={sonarcloud-api-token}
+      - lf-provide-maven-settings:
+          global-settings-file: global-settings
+          settings-file: '{mvn-settings}'
+      - shell: !include-raw-escape:
+          - ../shell/common-variables.sh
+          - ../shell/maven-sonar.sh
+      - lf-provide-maven-settings-cleanup
+
 - job-template:
     name: '{project-name}-sonar'
     id: gerrit-maven-sonar
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     triggers:
+      - timed: '{obj:cron}'
       - github-pull-request:
           trigger-phrase: '^run-sonar$'
-          only-trigger-phrase: false
+          only-trigger-phrase: true
           status-context: 'Maven Sonar'
           permit-all: true
           github-hooks: true
+          org-list:
+            - '{github-org}'
+          white-list: '{obj:github_pr_whitelist}'
+          admin-list: '{obj:github_pr_admin_list}'
           white-list-target-branches:
             - '{branch}'
 
     mvn-global-settings: global-settings
     mvn-goals: clean deploy
     mvn-opts: ''
-    mvn-params: '-Dstream=$STREAM'
+    mvn-params: '-Dstream=$STREAM -Dmaven.source.skip=true'
     mvn-version: mvn35
     stream: master
     submodule-recursive: true