sab*_*gen 12 google-cloud-platform monorepo google-cloud-build
GitHub的Google Cloud Build集成未检测到cloudbuild.yaml
或者Dockerfile
它是否不在存储库的根目录中.
当使用包含多个的monorepo时cloudbuild.yamls
,如何配置GitHub的Google Cloud Build集成来检测正确的cloudbuild.yaml
?
文件路径:
services/api/cloudbuild.yaml
services/nginx/cloudbuild.yaml
services/websocket/cloudbuild.yaml
Run Code Online (Sandbox Code Playgroud)
Cloud Build集成输出:
Roh*_*ngh 20
您可以通过cloudbuild.yaml
在一个gcr.io/cloud-builders/gcloud
步骤中在存储库的根目录中添加一个来完成此操作.这一步应该:
find
查找其他cloudbuild.yaml
文件.cloudbuild.yaml
,fork并通过运行提交构建gcloud builds submit
.gcloud
命令完成.还有的在做这一种方式一个很好的例子根cloudbuild.yaml
内的GoogleCloudPlatform/cloud-builders-community
回购.
如果我们删除非必要部分,基本上你有这样的东西:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- '-c'
- |
for d in */; do
config="${d}cloudbuild.yaml"
if [[ ! -f "${config}" ]]; then
continue
fi
echo "Building $d ... "
(
gcloud builds submit $d --config=${config}
) &
done
wait
Run Code Online (Sandbox Code Playgroud)
我们现在正在迁移到单一存储库,我还没有找到任何可以很好地处理这个问题的 CI/CD 解决方案。
关键是不仅要检测更改,还要检测依赖于该更改的任何服务。这是我们正在做的事情:
make build
在任何受更改影响的服务上运行。到目前为止,它运行良好,但我完全理解这是否不适合您的工作流程。
许多人使用的另一个选择是 Bazel。不是最简单的工具,但如果您有多种不同的语言或在您的 Mono 存储库中构建流程,则尤其有用。
归档时间: |
|
查看次数: |
1940 次 |
最近记录: |