google-cloud-platform - 当 SonarQube 7.8 质量门检查失败时如何终止 Google 云构建作业
问题描述
我在cloudbuild.yaml
文件中使用以下代码。但它给出了语法错误并失败了。请建议。
steps:
#build jar file
- name: maven:3.6.1-jdk-8
entrypoint : mvn
args: ['package', '-q']
dir: 'dataflows/generic/pubsub-sftp/src'
id: 'build-jar'
#static code analysis by sonarqube
- name: maven:3.6.1-jdk-8
entrypoint: bash
args:
- -c
- |
unset MAVEN_CONFIG \
&& echo "111.12.111.23 sonarqube.xxx.com" > /etc/hosts \
&& mvn sonar:sonar -q -Dsonar.login= **aa1234566789**\
'-Dsonar.projectKey=abc' \
'-Dsonar.projectName=ABC' \
'-Dsonar.host.url=https://example.com' \
'-Dsonar.qualitygate.wait=true' \
allow_failure: true
dir: 'dataflows/generic/pubsub-sftp/src'
id: 'sonarqube-analysis'
请建议为什么会出现语法错误。我们正在努力
解决方案
您的cloudbuild.yaml
. 花一些时间查看文档中有关语法的相关部分。特别强调处理替换的方式和您的secretEnv 变量。请注意,对于机密,您需要使用 Cloud KMS 或 Secret Manager。
您的文件的以下修改cloudbuild.yaml
假定您已按照相关说明使用 Cloud KMS(以它为基础,根据您的具体环境进行所需的相关更改):
steps:
#build jar file
- name: 'maven:3.6.1-jdk-8'
entrypoint : 'mvn'
args: ['package', '-q']
dir: 'dataflows/generic/pubsub-sftp/src'
id: 'build-jar'
#static code analysis by sonarqube
- name: 'maven:3.6.1-jdk-8'
entrypoint: 'bash'
args:
- -c
- |
unset MAVEN_CONFIG \
&& mvn sonar:sonar -q -Dsonar.login=abc\
'-Dsonar.projectKey=abc' \
'-Dsonar.projectName=ABC' \
'-Dsonar.host.url=https://sonarqube.home' \
'-Dsonar.qualitygate.wait=true' \
'allow_failure: true'
dir: 'dataflows/generic/pubsub-sftp/src'
id: 'sonarqube-analysis'
#Move jar to artifactory
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args: ['-c', 'curl -u $$ARTIFACTORY_CREDENTIALS -X PUT "https://artifactory.build.ingka.ikea.com/artifactory/$_ARTIFACTORY_REPO/$_PACKAGE_NAME/pubsub-sftp-$BRANCH_NAME.jar" -T pipeline-bundled-0.1.jar']
dir: 'dataflows/generic/pubsub-sftp/src/pipeline/target'
secretEnv: ['ARTIFACTORY_CREDENTIALS']
#Change these fields according to your configuration
substitutions:
_ARTIFACTORY_REPO: 'your-example-value-1'
_PACKAGE_NAME: 'your-example-value-2'
options:
substitution_option: 'ALLOW_LOOSE'
#Change these fields according to your configuration
secrets:
- kmsKeyName: projects/project-id/locations/global/keyRings/keyring-name/cryptoKeys/key-name
secretEnv:
ARTIFACTORY_CREDENTIALS: 'encrypted-password'
推荐阅读
- nginx - 在 Kubernetes 中使用 ingress-nginx 时,是否可以使用从路径中捕获的组来配置后端?
- discord - 如何在 Discord.js 中获取用户询问命令的角色
- reactjs - 已在 Hook in loop 中刷新状态
- batch-file - 批处理脚本 - 如何将标志传递到循环中并在满足条件时修改标志
- android - 在 onBindViewHolder 中为 RecyclerView 设置 Firebase 实时数据库参考中的图像
- string - 有没有办法直接将 golang 字符串复制到预先分配的 C 字符缓冲区
- java - Jersey Client 下载 ZIP 文件并高效解压
- node.js - AWS Lambda 错误:“名称”处的验证异常值 [] 未能满足约束:成员的长度必须大于或等于 1
- asp.net-core-webapi - 运行所选代码生成器时出错:无法解析类型“Microsoft.EntityFrameworkCore.DbContextOption”的服务
- video - 如何在pygame中制作视频循环