我有大约10个单独的微服务,这些微服务主要是用于各种数据处理作业的云功能,它们都生活在单个github存储库中。
目标是在更新到单个功能后,在推送到分支机构时触发将这些服务选择性地部署到Google Cloud Functions。
我必须避免单个服务的更新导致部署所有云功能的情况。
我当前的存储库结构:
/repo
--/service_A
----/function
----/notebook
--/service_B
----/function
----/notebook
附带说明,使用Github Actions VS Google Cloud Build进行此类自动化的利弊是什么?
GitHub Actions支持带有工作流路径过滤的monorepos。您可以创建工作流,以在特定路径上的文件发生更改时有选择地触发。
https://help.github.com/en/articles/workflow-syntax-for-github-actions#onpushpull_requestpaths
例如,当路径service_A/
下的任何文件已更改时,此工作流将在推送时触发。
on:
push:
paths:
- 'service_A/*'