Skip to content

OSCB-1652: Add Codestar Connection source #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 44 additions & 13 deletions customizations-for-aws-control-tower.template
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,19 @@ Parameters:
Description: Which AWS CodePipeline source provider do you want to select?
AllowedValues:
- 'Amazon S3'
- 'GitHub'
- 'GitHubEnterpriseServer'
- 'AWS CodeCommit'
Default: 'Amazon S3'
Type: String

CodeCommitRepositoryName:
Description: Name of the CodeCommit repository that contains custom Control Tower configuration. The suffix .git is prohibited.
Default: custom-control-tower-configuration
GitRepositoryName:
Description: Name of the Git repository that contains custom Control Tower configuration. The suffix .git is prohibited.
Default: vedant-singhania/CfCT-test
Type: String
AllowedPattern: ^[\w\.-]+

CodeCommitBranchName:
Description: Name of the branch in CodeCommit repository that contains custom Control Tower configuration.
GitBranchName:
Description: Name of the branch in Git repository that contains custom Control Tower configuration.
Default: main
Type: String

Expand Down Expand Up @@ -90,9 +91,11 @@ Metadata:
- PipelineApprovalEmail
- CodePipelineSource
- Label:
default: AWS CodeCommit Setup (Applicable if 'AWS CodeCommit' was selected as the CodePipeline Source)
default: Source Setup (Applicable if 'AWS CodeCommit' was selected as the CodePipeline Source)
Parameters:
- ExistingRepository
- GitRepositoryName
- GitBranchName
- CodeCommitRepositoryName
- CodeCommitBranchName
- Label:
Expand All @@ -111,6 +114,10 @@ Metadata:
default: AWS CodePipeline Source
ExistingRepository:
default: Existing CodeCommit Repository?
GitRepositoryName:
default: Git Repository Name
GitBranchName:
default: Git Branch Name
CodeCommitRepositoryName:
default: CodeCommit Repository Name
CodeCommitBranchName:
Expand Down Expand Up @@ -162,6 +169,7 @@ Conditions:
IsPipelineApprovalStageCondition: !Equals [!Ref PipelineApprovalStage, 'Yes']
IsBuildCustomControlTowerCondition: !Equals [!FindInMap [AutoBuild, CustomControlTower, Flag], 'Yes']
IsCodeCommitPipelineSource: !Equals [!Ref CodePipelineSource, 'AWS CodeCommit']
IsGit: !Or [!Equals [!Ref CodePipelineSource, 'GitHub'], !Equals [!Ref CodePipelineSource, 'GitHubEnterpriseServer']]
IsS3PipelineSource: !Equals [!Ref CodePipelineSource, "Amazon S3"]
IsExistingRepository: !Equals [!Ref ExistingRepository, 'Yes']
IsNewCodeCommitRepository: !And [!Not [!Condition IsExistingRepository], !Condition IsCodeCommitPipelineSource]
Expand Down Expand Up @@ -414,6 +422,20 @@ Resources:
- "sns:Publish"
Resource: !Ref PipelineApprovalTopic
- !Ref AWS::NoValue
- !If
- IsGit
- Effect: "Allow"
Action:
- "codestar-connections:UseConnection"
Resource: !Ref GitConnection
- !Ref AWS::NoValue

GitConnection:
Type: AWS::CodeStarConnections::Connection
Condition: IsGit
Properties:
ConnectionName: Git-Customizations-Connection
ProviderType: !Ref CodePipelineSource

CustomControlTowerCodePipeline:
Type: AWS::CodePipeline::Pipeline
Expand All @@ -429,11 +451,11 @@ Resources:
- Name: Source
ActionTypeId:
!If
- IsCodeCommitPipelineSource
- IsGit
- Category: Source
Owner: AWS
Version: "1"
Provider: CodeCommit
Provider: CodeStarSourceConnection
- Category: Source
Owner: AWS
Version: "1"
Expand All @@ -442,10 +464,12 @@ Resources:
- Name: SourceApp
Configuration:
!If
- IsCodeCommitPipelineSource
- RepositoryName: !Ref CodeCommitRepositoryName
BranchName: !Ref CodeCommitBranchName
PollForSourceChanges: false
- IsGit
- ConnectionArn: !Ref GitConnection
FullRepositoryId: !Ref GitRepositoryName
BranchName: !Ref GitBranchName
DetectChanges: true
OutputArtifactFormat: "CODEBUILD_CLONE_REF"
- S3Bucket: !Ref CustomControlTowerPipelineS3Bucket
S3ObjectKey: !FindInMap [BucketConfiguration, CustomControlTowerPipelineS3TriggerKey, Name]
PollForSourceChanges: false
Expand Down Expand Up @@ -559,6 +583,13 @@ Resources:
Action:
- ssm:DescribeParameters
Resource: '*' # The APIs above only support '*' resource.
- !If
- IsGit
- Effect: "Allow"
Action:
- "codestar-connections:UseConnection"
Resource: !Ref GitConnection
- !Ref AWS::NoValue

CustomControlTowerCodeBuild:
Type: AWS::CodeBuild::Project
Expand Down