如何解决Github动作模式的地形
我正在尝试使用Github拉取请求和合并功能来实现Terrath Plan的Github操作和应用。
我无法实现的是,为项目中的每个新组件重用工作流程。
例如,我必须在项目中添加一个新的微服务,我创建了如下的Terraform模块,
#new-microservice.tf
module "new-microservice" {
source = "",name = "foo",nlb = true,few other details
}
因此,当需要在项目中添加新的微服务时,任何人都可以通过更改属性值来创建带有模块块的新TF文件。
#one-more-microservice.tf
module "one-more-microservice" {
source = "",name = "bar",nlb = false,few other details
}
到目前为止,太好了。当我想隔离每个微服务的资源状态时,问题就来了。
每个TF文件都将进入Git存储库中的单独目录中,以便隔离TF状态。
但是,使用Github Actions,工作流yaml应该保存在Git存储库的.github / workflow目录中。
如何找到在拉取请求中发生更改的目录并在该目录中运行工作流程?
我尝试在Github Actions Marketplace中搜索,找不到任何具体的东西。
我不想在计划中创建多个作业并部署工作流yaml文件,其中一个用于微服务。
解决方法
这很棘手,因为您基本上是在说您希望一个工作流在多个存储库推送上触发,而这在github操作中目前还不存在
选项1: 创建一个Workflow Template,它所做的全部工作就是在服务推送上旋转并发送一个workflow dispatcher事件。您基本上可以进行触发该工作流程的api调用。唯一的警告是,到目前为止,组织工作流程模板仅适用于公共存储库。
选项2: 跟踪每个服务的上次构建提交。这将允许您进行扫描。这样做的问题是,您将需要设置一个workflow on a cronjob,然后将其浏览组织中所有存储库的列表,并进行提交比较。如果有可用的提交差异,那么您将知道要做的部署工作。 How to get list of organization repos
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。