我正在尝试执行sonarcloud-scan后运行sonarcloud-quality-gate检查。之所以这样做,是因为我希望如果质量门检查失败,bitbucket构建管道也应该失败。
这样做我会收到一些错误 Quality Gate失败:无法获取扫描仪报告:[Errno 2]没有这样的文件或目录:'/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes/sonarsource/sonarcloud-scan/sonarcloud -scan.log'
这是我的bitbucket.yml的样子。
image: node:10.15.3
clone:
depth: full # SonarCloud scanner needs the full history to assign issues properly
definitions:
caches:
sonar: ~/.sonar/cache # Caching SonarCloud artifacts will speed up your build
steps:
- step: &build-test-sonarcloud
name: Build, test and analyze on SonarCloud
caches:
- node
- sonar
script:
- npm install --quiet
- npm run test:coverage
- pipe: sonarsource/sonarcloud-scan:0.1.5
variables:
SONAR_TOKEN: ${SONAR_TOKEN}
EXTRA_ARGS: '-Dsonar.sources=src -Dsonar.tests=src -Dsonar.test.inclusions="**.test.jsx" -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info'
- pipe: sonarsource/sonarcloud-quality-gate:0.1.1
variables:
SONAR_TOKEN: ${SONAR_TOKEN}
pipelines:
default:
- step: *build-test-sonarcloud
尽管solarcloud-scan管道成功运行。
答案 0 :(得分:0)
问题是sonarsource/sonarcloud-quality-gate
管道需要sonarsource/sonarcloud-scan
管道的较新版本。 (自sonarsource/sonarcloud-quality-gate
管道首次发布以来就是这种情况。)
像这样更改管道配置:
- pipe: sonarsource/sonarcloud-scan:1.0.1
variables:
SONAR_TOKEN: ${SONAR_TOKEN}
EXTRA_ARGS: '-Dsonar.sources=src -Dsonar.tests=src -Dsonar.test.inclusions="**.test.jsx" -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info'
- pipe: sonarsource/sonarcloud-quality-gate:0.1.3
variables:
SONAR_TOKEN: ${SONAR_TOKEN}
查看最新版本的简单方法是在管道编辑器中。
当您编辑bitbucket-pipelines.yml
文件时,这样的侧边栏会打开,
您可以在其中输入“声纳”来过滤列表:
然后,单击管道以查看详细信息,并记下使用的版本。