55# You can find more options for customizing this resource to your needs
66# here: https://www.terraform.io/docs/providers/aws/r/codebuild_project.html
77resource "aws_codebuild_project" "build" {
8- name = " ${ var . project_name } "
8+ name = var. project_name
99 description = " CI pipeline for ${ var . project_name } "
1010 build_timeout = " 60" # In minutes
11- service_role = " ${ aws_iam_role . codebuild . arn } "
11+ service_role = aws_iam_role. codebuild . arn
1212
1313 # Valid values for this parameter are: CODEPIPELINE, NO_ARTIFACTS or S3.
1414 # If you are building a Docker container and pushing it to some registry,
@@ -18,34 +18,45 @@ resource "aws_codebuild_project" "build" {
1818 }
1919
2020 environment {
21- compute_type = " BUILD_GENERAL1_LARGE"
22- image = " ${ var . build_image } "
23- type = " LINUX_CONTAINER"
21+ compute_type = " BUILD_GENERAL1_LARGE"
22+ image = var. build_image
23+ type = " LINUX_CONTAINER"
24+
2425 # You need "true" here to be able to run Docker daemon inside the building container
2526 privileged_mode = " true"
2627
2728 environment_variable {
28- " name" = " DOCKER_REPO"
29- " value" = " ${ aws_ecr_repository . registry . repository_url } "
29+ name = " DOCKER_REPO"
30+ value = aws_ecr_repository. registry . repository_url
3031 }
3132 }
3233
3334 source {
3435 # Choose type "NO_SOURCE" to don't build from Github
3536 type = " GITHUB"
36- location = " ${ var . github_repo } "
37- buildspec = " ${ var . buildspec_file } "
37+ location = var. github_repo
38+ buildspec = var. buildspec_file
3839 }
3940
40- tags {
41- " App" = " ${ var . project_name } "
41+ tags = {
42+ " App" = var.project_name
4243 }
4344}
4445
4546# Unomment this section if you do want to build automatically on push
4647resource "aws_codebuild_webhook" "webhook" {
47- project_name = " ${ aws_codebuild_project . build . name } "
48- branch_filter = " ^master$"
48+ project_name = aws_codebuild_project. build . name
49+ filter_group {
50+ filter {
51+ type = " EVENT"
52+ pattern = " PUSH"
53+ }
54+
55+ filter {
56+ type = " HEAD_REF"
57+ pattern = " (^refs/heads/master$|^refs/tags/.*-(prod|test))"
58+ }
59+ }
4960}
5061
5162# ---
@@ -69,10 +80,11 @@ resource "aws_iam_role" "codebuild" {
6980 ]
7081}
7182EOF
83+
7284}
7385
7486resource "aws_iam_role_policy" "codebuild" {
75- role = " ${ aws_iam_role . codebuild . name } "
87+ role = aws_iam_role. codebuild . name
7688
7789 policy = << POLICY
7890{
@@ -107,18 +119,19 @@ resource "aws_iam_role_policy" "codebuild" {
107119 ]
108120}
109121POLICY
122+
110123}
111124
112125# ---
113126# ECR
114127# ---
115128
116129resource "aws_ecr_repository" "registry" {
117- name = " ${ var . project_name } "
130+ name = var. project_name
118131}
119132
120133resource "aws_ecr_repository_policy" "registrypolicy" {
121- repository = " ${ aws_ecr_repository . registry . name } "
134+ repository = aws_ecr_repository. registry . name
122135
123136 policy = << EOF
124137{
@@ -149,5 +162,6 @@ resource "aws_ecr_repository_policy" "registrypolicy" {
149162 ]
150163}
151164EOF
165+
152166}
153167
0 commit comments