2

我最近开始使用 terragrunt 并且一直想知道是否可以从特定分支而不是特定标签(或除了标签)而不是默认的 master 下载模块

从 master 下载特定标签:

terraform {
  source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=v.0.0.1"
}

从 repo 下载特定的分支?

# Pseudo code
terraform {
  source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=v.0.0.1%branch=test"
}
4

2 回答 2

2

我能够使用以下命令指定一个分支:

terraform {
  source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=branch-name"
}
于 2021-03-05T08:46:17.367 回答
1

查看 terragruntcli/download_source_test.go源代码,没有明显的方法来指定分支。

这意味着您需要向该分支添加一个标签,并将该标签用作ref.
话虽如此,请先检查是否ref=<mybranch>有效。

但是,OP potatopotato在评论中确认直接引用分支名称是行不通的。

我刚刚对分支进行了更改,并且:

git add
 git commit
 git tag -a 'v1.branch'
 git push --follow-tags -u origin <branch_name>

我可以使用对分支的标签引用,而不是master.

德国人 Dautin的回答指向Terraform /Module Sources/Selecting a Revision

默认情况下,Terraform 将克隆并使用所选存储库中的默认分支(由 HEAD 引用)。您可以使用 ref 参数覆盖它:

module "vpc" {
  source = "git::https://example.com/vpc.git?ref=v1.2.0"
}

ref 参数的值可以是 git checkout 命令可以接受的任何引用,包括分支和标签名称。

所以使用分支名称是可能的。

于 2020-07-14T08:58:48.237 回答