modules/PR-analysis/main.tf (88 lines of code) (raw):

data "aws_ssm_parameter" "vcs_token" { name = "/${var.repo_name}/user/token" } resource "aws_cloudwatch_log_group" "test" { name = "/aws/codebuild/${var.repo_name}-${var.region_name}-pull-request-analysis" retention_in_days = 7 kms_key_id = var.aws_kms_key } #Codebuild for pull request testing resource "aws_codebuild_project" "pull-request" { name = "${var.repo_name}-${var.region_name}-pull-request-analysis" build_timeout = var.build_timeout service_role = var.service_role encryption_key = var.aws_kms_key artifacts { type = "NO_ARTIFACTS" } source { type = var.connection_provider == "GitHub" ? "GITHUB" : "BITBUCKET" location = var.location git_clone_depth = 1 buildspec = "buildspec_pr.yml" } environment { compute_type = "BUILD_GENERAL1_SMALL" image = "aws/codebuild/standard:6.0" type = "LINUX_CONTAINER" image_pull_credentials_type = "CODEBUILD" environment_variable { name = "AWS_ACCOUNT_ID" value = var.aws_account_id } environment_variable { name = "DOMAIN" value = var.codeartifact_domain } environment_variable { name = "ART_REPO_ID" value = var.codeartifact_repo } environment_variable { name = "REGION" value = var.region } environment_variable { name = "PROJECT" value = var.project } environment_variable { name = "REPO_NAME" value = var.repo_name } environment_variable { name = "ORGANIZATION" value = var.organization_name } environment_variable { name = "SONAR_TOKEN" value = var.sonarcloud_token_name } } logs_config { cloudwatch_logs { group_name = aws_cloudwatch_log_group.test.name } } } resource "aws_codebuild_source_credential" "access_token_github" { count = var.connection_provider == "GitHub" ? 1 : 0 auth_type = "PERSONAL_ACCESS_TOKEN" server_type = "GITHUB" token = data.aws_ssm_parameter.vcs_token.value } resource "aws_codebuild_source_credential" "access_token_bitbucket" { count = var.connection_provider == "Bitbucket" ? 1 : 0 auth_type = "BASIC_AUTH" server_type = "BITBUCKET" token = data.aws_ssm_parameter.vcs_token.value user_name = var.bitbucket_user } resource "aws_codebuild_webhook" "webhook" { project_name = aws_codebuild_project.pull-request.name filter_group { filter { type = "EVENT" pattern = var.webhook_pattern } } }