问题标签 [cloudbuild.yaml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 如何使用附加的 Cloud Build Trigger 将当前 Cloud Source Repository 推送到另一个 Cloud Source Repository
我有这个 Cloud Source Repository,它有一个触发器,可以构建 docker 文件并推送到 Cloud Container Registry。我希望能够从构建文件中的一个步骤将此 repo 推送到另一个 Cloud Source Repository。但我收到以下错误:
这是我的构建配置文件:
git - 尝试推送到远程存储库时出现远程拒绝错误
我正在尝试clone --mirror
一个云源存储库并将其推送到 gitlab 作为备份机制。当我第一次尝试这样做时,没有错误。但是,当我在将一些更改推送到云源存储库后再次对其进行测试时,我收到了以下错误。
下面是每次需要进行备份时触发的构建配置文件。
bash - 如何在新的 shell 中保留现有的环境变量
我知道我必须在这里做一些愚蠢的事情,但我正在尝试将环境变量传递给/bin/sh -c
在 Cloud Build 中运行的命令。
我的 Cloud Build 文件如下所示:
我的 Cloud Build Trigger 设置了替换,当我查看构建详细信息时,它会显示设置的环境变量。
但是,该命令的yarn db:migrate
作用就像没有设置环境变量一样。我相信这是因为它们没有从机器传递到命令。
知道我做错了什么吗?
这里的问题是,当我们调用 bin/sh 时,它会使用自己的环境变量创建一个新的 shell。当我阅读有关 SH/Dash 的手册时,我会在这里留下这个问题: 如何在新的 shell 中保留现有的环境变量?
google-cloud-build - 在 Google Cloud Build YAML 文件中使用 $() 运算符
我目前正在使用具有此步骤的 Google Cloud Build 构建管道
此配置的问题在于它将其视为'$(gcloud dataflow jobs list --filter="name=iot" --status=active --limit=1 --format="value(JOB_ID)")'
字符串,而不是执行其中的命令。
所以,我的问题是,$()
谷歌云构建 YAML 文件中可以有操作员吗?如何?
谢谢!
google-cloud-platform - 如何在 Cloud Build 的替换变量中执行“date -v -1m +%Y_%m”
我需要在我的云构建 yaml 文件中获取运行日期之前的月份和年份。尽我所能,我所做的一切都解决不了。
我看过有关在 /workspace 中存储环境变量的帖子,但也没有运气。
如何执行 $(date -v -1m +%Y_%m)?我只能得到 _$(date +%F) 来解决。
mongodb - 推送到 GitHub 后自动更新一个 Mongo 文档
我创建了一个 MongoDB 集群,其中有几个数据库。目前大家都去手动更新数据库里面的文档,不太理想。这就是为什么我创建了一个 GitHub 存储库,其中包含我们始终在数据库中更新的文件。之后,我们将所有更改推送到 GitHub 以跟踪谁在进行更改,并手动更新数据库。我进行了很多研究,但无法找到仅通过将更新推送到 GitHub 来自动化流程的理想方法。
我们对所有存储库都使用云构建,但找不到通过云构建脚本连接和更新数据库中文件的方法。我真的很感激所有的建议,谢谢。
google-cloud-platform - gcloud 构建提交替换无法正常工作。(错误:(gcloud.builds.submit)INVALID_ARGUMENT。)
我有以下配置:
如果我运行:
我收到以下消息:
如果我声明替换:
它运行,但替换只采用第一个变量,其他成为它的值:
google-cloud-platform - 有没有办法缓存我自己的 GCR 图像以避免每次构建都拉它?
我有一个构建,该图像存储在我的 GCR 中,我想减少时间,因为每次拉取都需要几分钟。有没有办法缓存此图像,以便每次都可以立即从缓存中获取?
所以我想以某种方式缓存这个'gcr.io/{Project name}/{name of my image}'
作为每个构建,拉取 fs 层,等待,验证校验和,下载完成需要几分钟。所以我后来的构建步骤正如它所说的那样被缓存Already have image (with digest): gcr.io/{Project name}/{name of my image}
。我基本上也想把这条线放在我的测试的顶部
git - 使 CloudBuild git push 最后一次提交到另一个 repo 中的分支
我在 repo_A 中有 branch_a(开发分支),在 repo_B(生产分支)中有 branch_b。两个存储库都在 Cloud Source 上。它们的历史是相同的,除了 branch_a 中的最后一次提交。
如何使 CloudBuild 将最后一次提交从 repo_A/branch_a 推送到 repo_B/branch_b?
CloudBuild 通过推送到 repo_A/branch_a 被触发。CloudBuild 将 repo_A/branch_a 提取到工作目录中
我设法将 repo_B/branch_b 添加为远程。但是当我尝试将“master”推送到 repo_B/branch_b 时,我得到:
git remote -v
列出两个遥控器:repo_A 和 repo_B
CloudBuild 服务帐户可以访问两个存储库
google-cloud-build - 我需要 Google Cloud Build“最后一步”
问题:有些步骤在 K8b 中创建实体,无论构建中的任何其他步骤是否成功,最终都必须将其删除。
这是一个例子cloudbyild.yaml
因此,如果“清理步骤”之前的任何步骤失败,GKE 中的实体删除将不会发生。并且下一次 cloudbuild 运行不会发生在干净的集群上。
我在文档中找不到这种情况的任何解决方案。
而且我认为目前我可以在每一步都使用 bash 脚本来解决这个问题,如果出现崩溃,我需要:
- 在 bash 脚本中捕获它;
- 发出命令以清除 bash 脚本中的集群;
- 然后使用非零代码退出脚本。每一步都是如此。
但在我看来,这不是一个很好的解决方案。也许有更好的解决方案?