【发布时间】:2022-01-28 10:18:04
【问题描述】:
请原谅我的无知,我还是个新手。
目标:SonarQube 分析并发布 PR 创建结果。
我现在拥有的:
带有内置存储库的 Azure Devops。 本地安装 git 以推/拉 Redgate SQL Source Control(我们的代码都是SQL)
SonarQube 分析和发布结果在我的构建管道中工作,我什至内置了一个构建断路器并且一切正常。
我面临并希望更改的问题是管道仅在 PR 完成并且合并到我的默认分支后触发。我希望在创建 PR(而不是完成)时进行分析,因为接下来的步骤是代码审查。结果是,如果 SQ 分析失败,则可以避免代码审查步骤,并将所需的修复返回给开发人员。
在构建阶段再次检查(检查整个项目的代码)之前完成分析(在功能分支上)将是一个巨大的优势。
提前致谢
trigger:
- dev
jobs:
- job: Rcs_Dev
timeoutInMinutes: 0
pool: Rcs Build
cancelTimeoutInMinutes: 1
steps:
- checkout: self
clean: true
- task: SonarQubePrepare@4
inputs:
SonarQube: 'SonarQubeServiceConnection'
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: 'Rcs_Rcs'
cliProjectName: 'Rcs'
cliSources: '.'
- task: SonarQubeAnalyze@4
displayName: "Run Code Analysis"
condition: and(succeeded(), or(eq(variables['Build.SourceBranchName'], 'dev'), contains(variables['Build.Reason'], 'PullRequest')))
- task: SonarQubePublish@4
inputs:
pollingTimeoutSec: '300'
- task: sonar-buildbreaker@8
inputs:
SonarQube: 'SonarQubeServiceConnection'
- task: RedgateSqlChangeAutomationBuild@4
inputs:
operation: Build
dbFolder: RootFolder
packageName: Rcs
tempServerTypeBuild: localDB
buildAdvanced: true
compareOptionsBuild: 'NoTransactions, IgnoreFileGroups'
dataCompareOptionsBuild: 'DisableAndReenableDMLTriggers, SkipFkChecks'
transactionIsolationLevelBuild: readCommitted
queryBatchTimeoutBuild: '0'
nugetPackageVersionSelector: Specific
nugetPackageVersion: '1.0'
nugetPackageVersionUseBuildId: true
requiredVersionOfDlma: latestInstalled
【问题讨论】:
标签: azure-devops yaml sonarqube pull-request redgate