Merge "Update sigul macro to support sign mode"
[releng/global-jjb.git] / jjb / lf-maven-jobs.yaml
index 8ec5b34..0c5abf6 100644 (file)
 - 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
     mvn-version: mvn35
     ossrh-profile-id: ''
     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-build:
           mvn-goals: '{mvn-goals}'
       - lf-sigul-sign-dir:
           sign-artifacts: '{sign-artifacts}'
           sign-dir: '$WORKSPACE/m2repo'
-      - lf-maven-stage
+          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
 
     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:
-      # Build weekly on Saturdays
-      - timed: 'H H * * 6'
+      - timed: '{obj:cron}'
       - github-pull-request:
           trigger-phrase: '^run-sonar$'
           only-trigger-phrase: true