Merge "Update prettier pre-commit to ignore stage error"
authorAndrew Grimberg <agrimberg@linuxfoundation.org>
Fri, 26 Mar 2021 14:59:24 +0000 (14:59 +0000)
committerGerrit Code Review <gerrit@linuxfoundation.org>
Fri, 26 Mar 2021 14:59:24 +0000 (14:59 +0000)
.jjb-test/lf-maven-jobs/maven-sonarcloud.yaml
docs/jjb/lf-maven-jobs.rst
jjb/lf-maven-jobs.yaml
jjb/lf-whitesource-jobs.yaml
releasenotes/notes/add-mvn-sonar-prescan-4dd3806c9698bb29.yaml [new file with mode: 0644]
releasenotes/notes/pin-git-review-v1.78-cc90954e3c50956a.yaml [new file with mode: 0644]
shell/gerrit-fetch-dependencies.sh
shell/gerrit-push-patch.sh

index 84ce9ac..c3239a2 100644 (file)
     sonarcloud-project-key: KEY
     sonarcloud-project-organization: ORGANIZATION
     sonarcloud-api-token: TOKEN
+
+- project:
+    name: example-sonarcloud-with-prescan-script
+    jobs:
+      - gerrit-maven-sonar-prescan-script
+
+    project: "sonarcloud"
+    project-name: "sonarcloud"
+    branch: "master"
+    mvn-settings: "sonarcloud-settings"
+    mvn-opts: "-Xmx1024m"
+    sonarcloud: true
+    sonarcloud-project-key: KEY
+    sonarcloud-project-organization: ORGANIZATION
+    sonarcloud-api-token: TOKEN
+    sonar-prescan-script: |
+      echo "Run script at start of job."
index 0ce612e..d312cec 100644 (file)
@@ -467,6 +467,9 @@ multi-branch configuration.
     - {project-name}-sonar
     - gerrit-maven-sonar
     - github-maven-sonar
+    - {project-name}-sonar-prescan-script
+    - gerrit-maven-sonar-prescan-script
+    - github-maven-sonar-prescan-script
 
 :Comment Trigger: run-sonar
 
@@ -475,6 +478,8 @@ multi-branch configuration.
     :build-node: The node to run build on.
     :jenkins-ssh-credential: Credential to use for SSH. (Generally configured in defaults.yaml)
     :mvn-settings: The name of settings file containing credentials for the project.
+    :sonar-prescan-script: (maven-sonar-prescan-script jobs) A shell script to run before
+        sonar scans.
 
 :Optional parameters:
 
index 9bf175c..2b5c794 100644 (file)
             unstable: true
             notbuilt: true
 
+    publishers:
+      - lf-jacoco-report
+      - findbugs
+      - lf-infra-publish
+
+- mvn_sonar_builders: &mvn_sonar_builders
+    name: mvn-sonar-builders
     builders:
       - lf-infra-pre-build
       # With SonarCloud
                 mvn-settings: "{mvn-settings}"
                 mvn-version: "{mvn-version}"
 
-    publishers:
-      - lf-jacoco-report
-      - findbugs
-      - lf-infra-publish
+- mvn_sonar_builders_prescan_script: &mvn_sonar_builders_prescan_script
+    name: mvn-sonar-builders-prescan-script
+    builders:
+      - shell: "{sonar-prescan-script}"
+      - lf-infra-pre-build
+      # 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-goals: "{mvn-goals}"
+                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}"
+                sonarcloud-java-version: "{sonarcloud-java-version}"
+      # 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-goals: "{mvn-goals}"
+                mvn-settings: "{mvn-settings}"
+                mvn-version: "{mvn-version}"
 
 - builder:
     name: lf-infra-maven-sonar
     <<: *lf_maven_common
     # yamllint disable-line rule:key-duplicates
     <<: *lf_maven_sonar
+    <<: *mvn_sonar_builders
+
+    scm:
+      - lf-infra-gerrit-scm:
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+          git-url: "{git-url}"
+          refspec: $GERRIT_REFSPEC
+          branch: $GERRIT_BRANCH
+          submodule-recursive: "{submodule-recursive}"
+          submodule-timeout: "{submodule-timeout}"
+          submodule-disable: "{submodule-disable}"
+          choosing-strategy: default
+
+- job-template:
+    name: "{project-name}-sonar-prescan-script"
+    id: gerrit-maven-sonar-prescan-script
+    <<: *lf_maven_common
+    # yamllint disable-line rule:key-duplicates
+    <<: *lf_maven_sonar
+    <<: *mvn_sonar_builders_prescan_script
 
     scm:
       - lf-infra-gerrit-scm:
           white-list-target-branches:
             - "{branch}"
 
+- job-template:
+    name: "{project-name}-sonar-prescan-script"
+    id: github-maven-sonar-prescan-script
+    <<: *lf_maven_common
+    # yamllint disable-line rule:key-duplicates
+    <<: *lf_maven_sonar
+    <<: *mvn_sonar_builders_prescan_script
+
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
+      - github:
+          url: "{github-url}/{github-org}/{project}"
+
+    scm:
+      - lf-infra-github-scm:
+          url: "{git-clone-url}{github-org}/{project}"
+          refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
+          branch: "$sha1"
+          submodule-recursive: "{submodule-recursive}"
+          submodule-timeout: "{submodule-timeout}"
+          submodule-disable: "{submodule-disable}"
+          choosing-strategy: default
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+
+    triggers:
+      - timed: "{obj:cron}"
+      - github-pull-request:
+          trigger-phrase: "^run-sonar$"
+          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}"
+
 ################
 # Maven Verify #
 ################
index 46cdf3a..f5f6fe1 100644 (file)
     submodule-timeout: 10
     submodule-disable: false
     wss-unified-agent-opts: ""
-    wss-unified-agent-version: 19.12.2
+    wss-unified-agent-version: 21.2.1
 
     gerrit_trigger_file_paths:
       - compare-type: ANT
diff --git a/releasenotes/notes/add-mvn-sonar-prescan-4dd3806c9698bb29.yaml b/releasenotes/notes/add-mvn-sonar-prescan-4dd3806c9698bb29.yaml
new file mode 100644 (file)
index 0000000..3061d99
--- /dev/null
@@ -0,0 +1,5 @@
+---
+features:
+  - |
+    Add sonar-prescan-script jobs for maven, allowing maven sonar jobs to
+    execute a shell script prior to the scan.
diff --git a/releasenotes/notes/pin-git-review-v1.78-cc90954e3c50956a.yaml b/releasenotes/notes/pin-git-review-v1.78-cc90954e3c50956a.yaml
new file mode 100644 (file)
index 0000000..06b5f74
--- /dev/null
@@ -0,0 +1,25 @@
+---
+fixes:
+  - |
+    Pin git review to 1.78
+
+    The latest version of module trys to look for git hook recursively within
+    the submodules.
+
+
+    Error:
+
+    .. code-block:: bash
+
+        Running: git submodule foreach cp -p .git/hooks/commit-msg "$(git rev-parse --git-dir)/hooks/"
+        Problems encountered installing commit-msg hook
+        The following command failed with exit code 128
+             "git submodule foreach cp -p .git/hooks/commit-msg "$(git rev-parse --git-dir)/hooks/""
+        -----------------------
+        Entering 'global-jjb'
+        cannot stat '.git/hooks/commit-msg': Not a directory
+        fatal: run_command returned non-zero status for global-jjb
+
+
+    Remove workaround that has been resolved in v1.28 and use lf-activate-venv
+    to install git-review
index ed42596..5cff012 100644 (file)
@@ -27,16 +27,11 @@ REPOS_DIR="$WORKSPACE/.repos"
 
 IFS=" " read -r -a PATCHES <<< "$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep -E '(recheck:|reverify:)' | awk -F: '{print $2}')"
 
-# Workaround for git-review bug in v1.24
-# https://storyboard.openstack.org/#!/story/2001081
-set +u  # Allow unbound variables for virtualenv
-virtualenv --quiet "/tmp/v/git-review"
-# shellcheck source=/tmp/v/git-review/bin/activate disable=SC1091
-source "/tmp/v/git-review/bin/activate"
-pip install --quiet --upgrade "pip==9.0.3" setuptools
-pip install --quiet --upgrade git-review
-set -u
-# End git-review workaround
+# shellcheck disable=SC1090
+source ~/lf-env.sh
+
+lf-activate-venv "git-review==1.28"
+
 
 projects=()
 for patch in "${PATCHES[@]}"; do
index 3066339..aae77f5 100644 (file)
@@ -47,7 +47,7 @@ echo -e "INFO: Staged for commit:\n$staged_commits\n"
 # shellcheck disable=SC1090
 source ~/lf-env.sh
 
-lf-activate-venv "git-review>=1.28"
+lf-activate-venv "git-review==1.28"
 
 # Query for a pre-existing gerrit review
 query_result=$(ssh -p 29418 "$GERRIT_USER@$GERRIT_HOST" gerrit query \