首页 > 解决方案 > 具有云功能的 GCP Cloud 构建未部署最新代码

问题描述

我正在尝试使用 Google Cloud Build 设置 CI/CD 管道,以便使用 GitHub 存储库部署 Google Cloud Functions。

我设法创建了触发器,每当我将更改推送到主分支时,构建就会触发。但是在部署和云功能版本增加后,当我调用云功能时,它仍然执行旧功能。

以下是 buildconfig.yaml

steps:
- name: gcr.io/cloud-builders/git
  args: ['clone', 'https://github.com/mayuran19/GCP-CloudFunction']
- name: gcr.io/cloud-builders/git
  args: ['pull', 'https://github.com/mayuran19/GCP-CloudFunction', 'master']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['functions', 'deploy', 'function-1', '--trigger-http', '--runtime', 'nodejs8', '--entry-point', 'helloWorld']
  dir: './'

标签: google-cloud-platformcontinuous-integrationgoogle-cloud-functionsgoogle-cloud-build

解决方案


调试 Cloud Build 具有挑战性,但我认为您缺少正确的部署源。

git clone ...步骤创建/workspace/GCP-CloudFunction

但是你gcloud functions deploy ...来自(默认 == /workspace)。

你需要指出gcloud functions deploy ... --source=./GCP-CloudFunction。(因为你在/workspace; 或者--source=/workspace/GCP-CloudFunction是明确的)。

一个有用的调试机制是添加一个busybox步骤,ls -la /workspace以确保工作区包含您所期望的内容。


推荐阅读