Как установить динамический путь для выходного артефакта из aws_codebuild_project в Terraform?
Я пытаюсь настроить проект AWS CodeBuild в Terraform:
resource "aws_codebuild_project" "example" {
name = "test-project"
description = "test_codebuild_project"
build_timeout = "5"
service_role = "${aws_iam_role.example.arn}"
artifacts {
type = "S3"
location = "${aws_s3_bucket.example.bucket}"
name = "example.zip"
packaging = "ZIP"
path = "dev/api/${var.app_version}"
}
Этот пример работает нормально, но он только сохранит артефакт сборки example.zip
в папку, установленную при terraform apply
был запущен, так как ${var.app_version}
не изменяется при последующих запусках этой сборки.
Как мне добиться чего-то, что, например, берет номер версии из package.json
файл в репо и использует это для ${var.app_version}
?
1 ответ
Это не должно быть сделано со стороны терраформ. В документах AWS CodeBuild упоминается, как достичь чего-то подобного с помощью buildspec, хотя вы можете ограничиться только использованием переменных env, предоставленных CodeBuild, для добавления варианта к имени.
version: 0.2
phases:
build:
commands:
- rspec HelloWorld_spec.rb
artifacts:
files:
- '**/*'
name: myname-$CODEBUILD_SOURCE_VERSION
Вы можете найти расширенное объяснение здесь: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html