11

问题

在运行 Build ( cloudbuild.yaml )时,在 Google Cloud Build 中设置的 GitHub 触发器实际上不会替换配置的值

这是 Google Cloud Build 配置

cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  id: 'decrypt .npmrc'
  args:
  - kms
  - decrypt
  - --ciphertext-file=npmrc.enc
  - --plaintext-file=/root/.npmrc
  - --location=global
  - --keyring=my-keyring
  - --key=npm-key
  - --project=${_CLOUD_KMS_PROJECT}
  volumes:
    - name: 'home'
      path: /root/
- name: 'gcr.io/cloud-builders/npm'
  id: 'install'
  args: ['install']
  env:
  - HOME=/root/
  volumes:
  - name: 'home'
    path: /root/
- name: 'gcr.io/cloud-builders/npm'
  id: 'test'
  args: ['run', 'test']
- name: gcr.io/$PROJECT_ID/skaffold:alpha
  id: 'deploy'
  args: ['run', '-f=${_SKAFFOLD_FILE}']
  env:
  - CLOUDSDK_COMPUTE_ZONE=${_CLOUDSDK_COMPUTE_ZONE}
  - CLOUDSDK_CONTAINER_CLUSTER=${_CLOUDSDK_CONTAINER_CLUSTER}
substitutions:
    _SKAFFOLD_FILE: dummy.yaml
    _CLOUDSDK_COMPUTE_ZONE: us-west1-a
    _CLOUDSDK_CONTAINER_CLUSTER: dummy
timeout: 1000s

奇怪的是,当通过gcloudSDK 调用触发构建时,它可以工作 ✅ 例如:

gcloud builds submit --config=cloudbuild.yaml --substitutions=_SKAFFOLD_FILE=skaffold.yaml,_CLOUDSDK_COMPUTE_ZONE=us-west1-a,_CLOUDSDK_CONTAINER_CLUSTER=skaffold .

更多上下文

Cloud Build 触发器信息中心 (img)

带替换的触发配置 (img)

触发构建 (img) 的构建历史记录中缺少替换

相比之下:运行时正确替换的值gcloud builds submit(img)

4

0 回答 0