1

我正在为一个大型企业数据仓库项目实施持续集成和持续交付。所有代码都驻留在 Google Cloud Repository 中,我可以设置 Google Cloud Build 触发器,以便每次将特定文件类型(Python 脚本)的代码推送到主分支时,Google Cloud 构建就会开始。

Python 脚本不构成应用程序。它们包含一个 ODBC 连接字符串和脚本,用于从源中提取数据并将其存储为 CSV 文件。Python 脚本将在安装了 AirFlow 的 Google Compute Engine VM 实例上执行。

因此 Python 脚本的部署非常简单: .py 文件只能从 Google Cloud 存储库文件夹复制到 Google VM 实例上的特定文件夹。没有真正的传统构建可以运行,因为所有 Python 文件都是相互独立的,而不是应用程序的一部分。

我认为这真的很容易,但现在我花了几天时间试图解决这个问题,但没有运气。Google Cloud Platform 提供了几个 Cloud Builders,但据我所知,没有一个可以完成这个简单的任务。使用 GCLOUD 也不起作用。它可以复制文件,但只能从本地电脑复制到虚拟机,不能从源存储库复制到虚拟机。

我正在寻找的是一个 YAML 或 JSON 构建配置文件,用于将这些 Python 文件从源存储库复制到 Google Compute Engine VM 实例。

希望在这里得到一些帮助。

4

1 回答 1

2

谷歌云存储库中的文件/文件夹不能直接访问(它就像一个裸 git 存储库),您需要先克隆存储库,然后将所需的文件/文件夹从克隆的存储库复制到它们的目的地。

可能可以使用标准Fetching dependencies构建步骤来克隆存储库,但在您的情况下我不是 100% 确定它,因为您实际上并没有进行构建:

steps:
- name: gcr.io/cloud-builders/git
  args: ['clone', 'https://github.com/GoogleCloudPlatform/cloud-builders']

如果不是,您可能需要一个(或多个)自定义构建步骤。从创建自定义构建步骤

自定义构建步骤是 Cloud Build 工作人员虚拟机提取并运行的容器映像,您的源卷安装到/workspace. 您的自定义构建步骤可以执行容器内的任何脚本或二进制文件;因此,它可以做任何容器可以做的事情。

自定义构建步骤适用于:

  • 从外部位置下载源代码或包

    ...

于 2018-10-07T18:49:49.820 回答