Как задать динамический путь для выходного артефакта из 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}?

0
задан 20 June 2018 в 13:06
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

1
ответ дан 4 December 2019 в 15:56

Теги

Похожие вопросы