mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-03-03 15:02:35 +02:00
* Add proxy config for sonar scan step Update sonar.go Import fmt Update sonar.go Use serverUrl from config Update sonarExecuteScan.go Add proxy param Add proxy check Update sonarExecuteScan.go Update sonarExecuteScan.go Update http.go Update sonarExecuteScan.go Update sonarExecuteScan.go Add env variable Fix typo Fix string Split host port Typo Remove echoes * Code review change * Refactor * Update cmd/sonarExecuteScan.go Co-authored-by: dimitrij-afonitschkin <131276293+dimitrij-afonitschkin@users.noreply.github.com> * Add proxy config for sonar scan step Update sonar.go Import fmt Update sonar.go Use serverUrl from config Update sonarExecuteScan.go Add proxy param Add proxy check Update sonarExecuteScan.go Update sonarExecuteScan.go Update http.go Update sonarExecuteScan.go Update sonarExecuteScan.go Add env variable Fix typo Fix string Split host port Typo Remove echoes * Code review change * Refactor * Update cmd/sonarExecuteScan.go Co-authored-by: dimitrij-afonitschkin <131276293+dimitrij-afonitschkin@users.noreply.github.com> * Add compatability to other usecases --------- Co-authored-by: dimitrij-afonitschkin <131276293+dimitrij-afonitschkin@users.noreply.github.com>
317 lines
11 KiB
YAML
317 lines
11 KiB
YAML
metadata:
|
|
name: sonarExecuteScan
|
|
description: Executes the Sonar scanner
|
|
longDescription: "The step executes the [sonar-scanner](https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner)
|
|
cli command to scan the defined sources and publish the results to a SonarQube instance."
|
|
spec:
|
|
inputs:
|
|
secrets:
|
|
- name: sonarTokenCredentialsId
|
|
type: jenkins
|
|
description: "Jenkins 'Secret text' credentials ID containing the token used to authenticate
|
|
with the Sonar Server."
|
|
- name: githubTokenCredentialsId
|
|
type: jenkins
|
|
description: "Jenkins 'Secret text' credentials ID containing the token used to authenticate
|
|
with the Github Server."
|
|
params:
|
|
- name: instance
|
|
type: string
|
|
description: "Jenkins only: The name of the SonarQube instance defined in the Jenkins settings.
|
|
DEPRECATED: use serverUrl parameter instead"
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: proxy
|
|
type: string
|
|
description: Proxy URL to be used for communication with the SonarQube instance.
|
|
scope:
|
|
- PARAMETERS
|
|
- STEPS
|
|
- STAGES
|
|
- name: serverUrl
|
|
aliases:
|
|
- name: host
|
|
- name: sonarServerUrl
|
|
type: string
|
|
description: "The URL to the Sonar backend."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: token
|
|
type: string
|
|
description: "Token used to authenticate with the Sonar Server."
|
|
scope:
|
|
- PARAMETERS
|
|
secret: true
|
|
resourceRef:
|
|
- type: vaultSecret
|
|
name: sonarVaultSecretName
|
|
default: sonar
|
|
- name: sonarTokenCredentialsId
|
|
type: secret
|
|
aliases:
|
|
- name: sonarToken
|
|
- name: organization
|
|
type: string
|
|
description: "SonarCloud.io only: Organization that the project will be assigned to in SonarCloud.io."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: customTlsCertificateLinks
|
|
type: "[]string"
|
|
description: "List of download links to custom TLS certificates.
|
|
This is required to ensure trusted connections to instances with custom certificates."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: sonarScannerDownloadUrl
|
|
type: string
|
|
description: "URL to the sonar-scanner-cli archive."
|
|
default: "https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip"
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: versioningModel
|
|
type: string
|
|
description: "The versioning model used for the version when reporting the results for the project."
|
|
scope: [GENERAL, STAGES, STEPS, PARAMETERS]
|
|
default: "major"
|
|
possibleValues:
|
|
- major
|
|
- major-minor
|
|
- semantic
|
|
- full
|
|
- name: version
|
|
aliases:
|
|
- name: projectVersion
|
|
deprecated: true
|
|
type: string
|
|
description: "The project version that is reported to SonarQube."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: artifactVersion
|
|
- name: customScanVersion
|
|
type: string
|
|
description: "A custom version used along with the uploaded scan results."
|
|
longDescription: |-
|
|
Defines a custom version for the Sonar scan which deviates from the typical versioning pattern using [`version`](#version) and [`versioningModel`](#versioningModel).
|
|
It allows to set non-numeric versions as well and supersedes the value of [`version`](#version) which is calculated automatically.
|
|
The parameter is also used by other scan steps (e.g. Detect, Fortify, WhiteSource) and thus allows a common custom version across scan tools.
|
|
scope: [GENERAL, STAGES, STEPS, PARAMETERS]
|
|
- name: projectKey
|
|
type: string
|
|
description: "The project key identifies the project in SonarQube."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: coverageExclusions
|
|
type: "[]string"
|
|
description: "A list of patterns that should be excluded from the coverage scan."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: inferJavaBinaries
|
|
type: bool
|
|
description: "Find the location of generated Java class files in all modules
|
|
and pass the option `sonar.java.binaries to the sonar tool."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: inferJavaLibraries
|
|
type: bool
|
|
description: "If the parameter `m2Path` is configured for the step `mavenExecute`
|
|
in the general section of the configuration, pass it as option `sonar.java.libraries`
|
|
to the sonar tool."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: options
|
|
type: "[]string"
|
|
description: "A list of options which are passed to the sonar-scanner."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
aliases:
|
|
- name: sonarProperties
|
|
deprecated: true
|
|
- name: waitForQualityGate
|
|
type: bool
|
|
description: "Whether the scan should wait for and consider the result of the quality gate."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
# Parameters for non-PR scans
|
|
- name: branchName
|
|
type: string
|
|
description: "Non-Pull-Request only: Name of the SonarQube branch that should be used to report findings to. Automatically inferred from environment variables on supported orchestrators if `inferBranchName` is set to true."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: inferBranchName
|
|
type: bool
|
|
description: "Whether to infer the `branchName` parameter automatically based on the
|
|
orchestrator-specific environment variable in runs of the pipeline."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
# Parameters for PR-Handling
|
|
- name: changeId
|
|
type: string
|
|
description: "Pull-Request only: The id of the pull-request. Automatically inferred from environment variables on supported orchestrators."
|
|
scope:
|
|
- PARAMETERS
|
|
- name: changeBranch
|
|
type: string
|
|
description: "Pull-Request only: The name of the pull-request branch. Automatically inferred from environment variables on supported orchestrators."
|
|
scope:
|
|
- PARAMETERS
|
|
- name: changeTarget
|
|
type: string
|
|
description: "Pull-Request only: The name of the base branch. Automatically inferred from environment variables on supported orchestrators."
|
|
scope:
|
|
- PARAMETERS
|
|
- name: pullRequestProvider
|
|
type: string
|
|
description: "Pull-Request only: The scm provider."
|
|
default: GitHub
|
|
possibleValues:
|
|
- GitHub
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: owner
|
|
type: string
|
|
description: "Pull-Request only: The owner of the scm repository."
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
aliases:
|
|
- name: githubOrg
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: github/owner
|
|
- name: repository
|
|
type: string
|
|
description: "Pull-Request only: The scm repository."
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
aliases:
|
|
- name: githubRepo
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: github/repository
|
|
# Parameters for legacy PR-Handling
|
|
- name: githubToken
|
|
type: string
|
|
description: "Pull-Request only: Token for Github to set status on the Pull-Request."
|
|
scope:
|
|
- PARAMETERS
|
|
secret: true
|
|
aliases:
|
|
- name: access_token
|
|
resourceRef:
|
|
- name: githubTokenCredentialsId
|
|
type: secret
|
|
- type: vaultSecret
|
|
name: githubVaultSecretName
|
|
default: github
|
|
- name: disableInlineComments
|
|
type: bool
|
|
description: "Pull-Request only: Disables the pull-request decoration with inline comments.
|
|
DEPRECATED: only supported in SonarQube < 7.2"
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: legacyPRHandling
|
|
type: bool
|
|
description: "Pull-Request only: Activates the pull-request handling using
|
|
the [GitHub Plugin](https://docs.sonarqube.org/display/PLUG/GitHub+Plugin).
|
|
DEPRECATED: only supported in SonarQube < 7.2"
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: githubApiUrl
|
|
type: string
|
|
description: "Pull-Request only: The URL to the Github API.
|
|
See [GitHub plugin docs](https://docs.sonarqube.org/display/PLUG/GitHub+Plugin#GitHubPlugin-Usage)
|
|
DEPRECATED: only supported in SonarQube < 7.2"
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
default: https://api.github.com
|
|
|
|
# Global maven settings, should be added to all maven steps
|
|
- name: m2Path
|
|
type: string
|
|
description: "Path to the location of the local repository that should be used."
|
|
scope:
|
|
- GENERAL
|
|
- STEPS
|
|
- STAGES
|
|
- PARAMETERS
|
|
aliases:
|
|
- name: maven/m2Path
|
|
|
|
outputs:
|
|
resources:
|
|
- name: reports
|
|
type: reports
|
|
params:
|
|
- filePattern: "**/sonarscan.json"
|
|
type: sonarqube
|
|
- filePattern: "**/sonarscan-result.json"
|
|
type: sonarqube
|
|
- name: influx
|
|
type: influx
|
|
params:
|
|
- name: step_data
|
|
fields:
|
|
- name: sonar
|
|
type: bool
|
|
- name: sonarqube_data
|
|
fields:
|
|
- name: blocker_issues
|
|
type: int
|
|
- name: critical_issues
|
|
type: int
|
|
- name: major_issues
|
|
type: int
|
|
- name: minor_issues
|
|
type: int
|
|
- name: info_issues
|
|
type: int
|
|
containers:
|
|
- name: sonar
|
|
image: sonarsource/sonar-scanner-cli:4.7
|
|
options:
|
|
- name: -u
|
|
value: "0"
|