具有Github动作模式的Terraform

具有Github动作模式的Terraform,git,github,terraform,github-actions,Git,Github,Terraform,Github Actions,我正在尝试使用Github Pull请求和合并功能为Terraform Plan和Apply实现Github操作 我无法实现的是,为项目中的每个新组件重用工作流 例如,我必须在项目中添加一个新的微服务,我创建了一个Terraform模块,如下所示 #new-microservice.tf module "new-microservice" { source = "", name = "foo", nlb = tru

我正在尝试使用Github Pull请求和合并功能为Terraform Plan和Apply实现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 repo中一个单独的目录,以便隔离TF状态

但是,对于Github操作,工作流yaml应该保存在Git存储库的.Github/workflow目录中

如何找到在拉取请求中发生更改的目录并在该目录中运行工作流

我试着在Github Actions Marketplace中搜索,找不到任何具体的东西


我不想在plan and deploy workflow yaml文件中创建多个作业,一个用于microservice。

这是一个棘手的问题,因为您基本上是说希望在多个存储库推送时触发一个工作流,而这在github操作中目前并不存在

备选案文1: 创建一个应用程序,它所做的只是在服务推送上旋转并发送一个事件。基本上,您可以进行一个api调用来触发该工作流。唯一需要注意的是,到目前为止,组织工作流程模板仅适用于公共回购

备选案文2: 跟踪上次构建提交的每个服务。这将允许您进行扫描。这样做的问题是,您需要设置一个,然后查看组织中所有repo的列表,并执行提交差异。如果存在提交差异,则您知道如何执行部署所需的操作