From: Jessica Wagantall Date: Tue, 17 Sep 2019 23:56:24 +0000 (+0000) Subject: Merge "Add sonar-prescan jobs" X-Git-Tag: v0.44.0~5 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=5f28702c4a74e49627390ffd108c1beea141a27b;hp=993a4550c0c049d9cbeb270fe7aaad72064960c3;p=releng%2Fglobal-jjb.git Merge "Add sonar-prescan jobs" --- diff --git a/docs/jjb/lf-ci-jobs.rst b/docs/jjb/lf-ci-jobs.rst index a266142e..20dde4ef 100644 --- a/docs/jjb/lf-ci-jobs.rst +++ b/docs/jjb/lf-ci-jobs.rst @@ -906,3 +906,33 @@ Plug-in configurations :sonar-properties: Sonar configuration properties. (default: "") :sonar-java-opts: JVM options. (default: "") :sonar-additional-args: Additional command line arguments. (default: "") + + +Sonar with Prescan +------------------ + +The same as the Sonar job above, except the caller also defines a builder +called ``lf-sonar-prescan``, in which they can put any builders that they want +to run prior to the Sonar scan. + +.. code-block:: yaml + + - builder: + name: lf-sonar-prescan + builders: + - shell: "# Pre-scan shell script" + +:Template Names: + + - {project-name}-sonar-prescan + - gerrit-sonar-prescan + - github-sonar-prescan + +:Required Parameters: + :lf-sonar-prescan: A builder that will run prior to the Sonar scan. + +:Optional Parameters: + :sonar-task: Sonar task to run. (default: "") + :sonar-properties: Sonar configuration properties. (default: "") + :sonar-java-opts: JVM options. (default: "") + :sonar-additional-args: Additional command line arguments. (default: "") diff --git a/docs/jjb/lf-macros.rst b/docs/jjb/lf-macros.rst index e628179d..ff8c561a 100644 --- a/docs/jjb/lf-macros.rst +++ b/docs/jjb/lf-macros.rst @@ -301,6 +301,23 @@ Runs Jenkins SonarQube plug-in. Requires ``SonarQube Scanner for Jenkins`` +:Optional Parameters: + :sonar-task: Sonar task to run. (default: "") + :sonar-properties: Sonar configuration properties. (default: "") + :sonar-java-opts: JVM options. (default: "") + :sonar-additional-args: Additional command line arguments. (default: "") + +lf-infra-sonar-with-prescan +--------------------------- + +Runs Jenkins SonarQube plug-in after a pre-scan builder, which is defined by +the macro's caller. + +Requires ``SonarQube Scanner for Jenkins`` + +:Required Parameters: + :lf-sonar-prescan: A builder that will run prior to the Sonar scan. + :Optional Parameters: :sonar-task: Sonar task to run. (default: "") :sonar-properties: Sonar configuration properties. (default: "") diff --git a/jjb/lf-ci-jobs.yaml b/jjb/lf-ci-jobs.yaml index f69e8d71..981e84dd 100644 --- a/jjb/lf-ci-jobs.yaml +++ b/jjb/lf-ci-jobs.yaml @@ -2046,6 +2046,11 @@ default: "{archive-artifacts}" description: Artifacts to archive to the logs server. + publishers: + - lf-infra-publish + +- lf_sonar_builders: &lf_sonar_builders + name: lf-sonar-builders builders: - lf-infra-pre-build - lf-infra-sonar: @@ -2054,27 +2059,22 @@ sonar-java-opts: "{sonar-java-opts}" sonar-additional-args: "{sonar-additional-args}" - publishers: - - lf-infra-publish - -- job-template: - name: "{project-name}-sonar" - id: gerrit-sonar - <<: *lf_sonar_common - # yamllint disable-line rule:key-duplicates - - ###################### - # Default parameters # - ###################### +- lf_sonar_builders_prescan: &lf_sonar_builders_prescan + name: lf-sonar-builders-prescan + builders: + - lf-infra-pre-build + - lf-infra-sonar-with-prescan: + sonar-task: "{sonar-task}" + sonar-properties: "{sonar-properties}" + sonar-java-opts: "{sonar-java-opts}" + sonar-additional-args: "{sonar-additional-args}" +- lf_sonar_gerrit_common: &lf_sonar_gerrit_common + name: lf-sonar-gerrit-common gerrit_sonar_triggers: - comment-added-contains-event: comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$' - ##################### - # Job Configuration # - ##################### - scm: - lf-infra-gerrit-scm: jenkins-ssh-credential: "{jenkins-ssh-credential}" @@ -2104,12 +2104,8 @@ unstable: true notbuilt: true -- job-template: - name: "{project-name}-sonar" - id: github-sonar - <<: *lf_sonar_common - # yamllint disable-line rule:key-duplicates - +- lf_sonar_github_common: &lf_sonar_github_common + name: lf-sonar-github-common properties: - lf-infra-properties: build-days-to-keep: "{build-days-to-keep}" @@ -2137,3 +2133,39 @@ white-list-target-branches: - "{branch}" included-regions: "{obj:github_included_regions}" + +- job-template: + name: "{project-name}-sonar" + id: gerrit-sonar + <<: *lf_sonar_common + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_builders + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_gerrit_common + +- job-template: + name: "{project-name}-sonar" + id: github-sonar + <<: *lf_sonar_common + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_builders + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_github_common + +- job-template: + name: "{project-name}-sonar-prescan" + id: gerrit-sonar-prescan + <<: *lf_sonar_common + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_builders_prescan + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_gerrit_common + +- job-template: + name: "{project-name}-sonar-prescan" + id: github-sonar-prescan + <<: *lf_sonar_common + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_builders_prescan + # yamllint disable-line rule:key-duplicates + <<: *lf_sonar_github_common diff --git a/jjb/lf-macros.yaml b/jjb/lf-macros.yaml index fa012028..2dd65704 100644 --- a/jjb/lf-macros.yaml +++ b/jjb/lf-macros.yaml @@ -337,6 +337,20 @@ java-opts: "{sonar-java-opts}" additional-arguments: "{sonar-additional-args}" +- builder: + name: lf-infra-sonar-with-prescan + # Run a Sonar Jenkins Plugin + builders: + - lf-sonar-prescan # Must be defined by caller + - sonar: + sonar-name: Sonar + scanner-name: SonarQubeScanner + task: "{sonar-task}" + project: "sonar-project.properties" + properties: "{sonar-properties}" + java-opts: "{sonar-java-opts}" + additional-arguments: "{sonar-additional-args}" + ############## # PARAMETERS # ############## diff --git a/releasenotes/notes/add-sonar-prescan-jobs-ae56dc8177dec9ab.yaml b/releasenotes/notes/add-sonar-prescan-jobs-ae56dc8177dec9ab.yaml new file mode 100644 index 00000000..39e8d74d --- /dev/null +++ b/releasenotes/notes/add-sonar-prescan-jobs-ae56dc8177dec9ab.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add an additonal Sonar job that allows the caller to provide a builder that + runs prior to the Sonar scan.