首页 > 解决方案 > CloudBuild 触发器:解组构建配置 cloudbuild.yaml 失败:json:无法将字符串解组为 []json.RawMessage 类型的 Go 值

问题描述

当我使用我cloudbuild.yaml的 CloudBuild 触发器时,它失败了:

failed unmarshalling build config cloudbuild.yaml: json: cannot unmarshal string into Go value of type []json.RawMessage

我已经将我的 cloudbuild.yaml 减少到

steps:
  - name: "gcr.io/skynet-2359/sonar-scanner"
    waitFor: "-"
    args: [
      "-Dsonar.projectKey=xxx",
      "-Dsonar.sources=./src",
      "-Dsonar.host.url=http://sonarqube....",
      "-Dsonar.login=${_SONAR_TOKEN}"
    ]

substitutions:
  _SONAR_TOKEN: "..."

如果我使用 CLI 方式启动,则构建工作:

gcloud builds submit --config cloudbuild.yaml .

标签: google-cloud-platformgoogle-cloud-build

解决方案


发现问题。waitFor应该是一个数组:

steps:
  - name: "gcr.io/skynet-2359/sonar-scanner"
    waitFor: ["-"]
    args: [
      "-Dsonar.projectKey=xxx",
      "-Dsonar.sources=./src",
      "-Dsonar.host.url=http://sonarqube....",
      "-Dsonar.login=${_SONAR_TOKEN}"
    ]

substitutions:
  _SONAR_TOKEN: "..."

推荐阅读