Skip to main content

/ipa-stack-codepipeline

CI/CD pipeline with CodeBuild for automated build, test, and deploy. Composed via /ipa-compose codepipeline as a prepare-lifecycle stack.

Stack Identity

PropertyValue
Stack name{APP_NAMESPACE}-{APP_ENV}-codepipeline
Templateinfra/cfn/codepipeline/codepipeline.yml
CapabilitiesCAPABILITY_NAMED_IAM
Lifecycleprepare (prerequisite stack)
Tiercodepipeline

Parameters

Configuration Parameters

ParameterDefaultDescription
Namespace(from .env)Project namespace
Environment(from .env)Environment label
AccountId(from .env)AWS account ID
SourceBranchmainBranch that triggers the pipeline
BuildImageaws/codebuild/standard:7.0CodeBuild image
ComputeTypeBUILD_GENERAL1_LARGECodeBuild compute type
KmsKeyArn(none)Optional KMS key ARN

Wirable Parameters

ParameterSource StackSource OutputNotes
CodeBuildRoleArnsecurityCodeBuildRoleArnFrom /ipa-security stack
EcrRepoUriecrRepositoryUriECR repository URI
OidcIssuercognitoIssuerUrlOIDC issuer URL
OidcClientIdcognitoUserPoolClientIdCognito app client ID
OidcEndSessionEndpointcognitoEndSessionEndpointCognito end session endpoint
SourceRepoNamecodecommitRepositoryNameCodeCommit repository name

Compose Config

ParameterPromptDefault
SourceBranch"Branch to trigger pipeline?"main
BuildImageaws/codebuild/standard:7.0
ComputeTypeBUILD_GENERAL1_LARGE

CodeBuild Environment Variables

The pipeline injects these environment variables into CodeBuild, which are inherited by Make targets:

VariableDescription
APP_NAMESPACEProject namespace
APP_ENVEnvironment label
AWS_ACCOUNT_IDAWS account ID
ECR_REPO_URIECR repository URI
OIDC_ISSUERCognito OIDC issuer URL
OIDC_CLIENT_IDCognito client ID
OIDC_END_SESSION_ENDPOINTCognito logout URL
IPA_MAKEFILEMakefile path (set per pipeline action)
IPA_TARGETMake target (set per pipeline action)

Pipeline Stages

StageMakefileTarget
Testscripts/test.mktest
Buildscripts/build.mkbuild
Deployscripts/deploy.mkdeploy
PostDeployscripts/post-deploy.mkpost-deploy

Outputs

OutputDescription
PipelineNameCodePipeline name
PipelineArnPipeline ARN
CodeBuildProjectNameCodeBuild project name
ArtifactBucketNameS3 bucket for pipeline artifacts