Skip to content

CodePipeline example

Kenan Scott edited this page Dec 14, 2017 · 1 revision

This is the CodePipeline used at Groundwire with some information removed, specified by a note in parentheses.

{
"pipeline": {
"roleArn": "(The role that CodePipeline will use)", "stages": [
{
"name": "Source", "actions": [
{
"inputArtifacts": [], "name": "Source", "actionTypeId": {
"category": "Source", "owner": "ThirdParty", "version": "1", "provider": "GitHub"
}, "outputArtifacts": [
{
"name": "MyApp"
}
], "configuration": {
"Owner": "GroundwireDevs", "Repo": "commitment-form-processor", "PollForSourceChanges": "true", "Branch": "prod", "OAuthToken": "****"
}, "runOrder": 1
}, {
"inputArtifacts": [], "name": "ConfigSource", "actionTypeId": {
"category": "Source", "owner": "AWS", "version": "1", "provider": "S3"
}, "outputArtifacts": [
{
"name": "MyConfig"
}
], "configuration": {
"S3Bucket": "(The S3 bucket that contains config.zip)", "PollForSourceChanges": "true", "S3ObjectKey": "(The key of config.zip in S3Bucket)"
}, "runOrder": 1
}
]
}, {
"name": "Build", "actions": [
{
"inputArtifacts": [
{
"name": "MyApp"
}
], "name": "Build", "actionTypeId": {
"category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild"
}, "outputArtifacts": [
{
"name": "MyTemplate"
}
], "configuration": {
"ProjectName": "commitment-form-processor"
}, "runOrder": 1
}
]
}, {
"name": "Staging", "actions": [
{
"inputArtifacts": [
{
"name": "MyApp"
}, {
"name": "MyConfig"
}, {
"name": "MyTemplate"
}
], "name": "JesusCaresCommitmentForms", "actionTypeId": {
"category": "Deploy", "owner": "AWS", "version": "1", "provider": "CloudFormation"
}, "outputArtifacts": [], "configuration": {
"ActionMode": "CHANGE_SET_REPLACE", "ChangeSetName": "A", "RoleArn": "(The role that CloudFormation will use)", "Capabilities": "CAPABILITY_IAM", "StackName": "JesusCaresCommitmentFormsDev", "ParameterOverrides": "{\n\"Stage\": \"dev\"\n}", "TemplateConfiguration": "MyConfig::config.json", "TemplatePath": "MyTemplate::commitment-form-processor-replaced.template"
}, "runOrder": 1
}, {
"inputArtifacts": [], "name": "ExecuteChangeSet", "actionTypeId": {
"category": "Deploy", "owner": "AWS", "version": "1", "provider": "CloudFormation"
}, "outputArtifacts": [], "configuration": {
"StackName": "JesusCaresCommitmentFormsDev", "ActionMode": "CHANGE_SET_EXECUTE", "ChangeSetName": "A"
}, "runOrder": 2
}
]
}, {
"name": "Approval", "actions": [
{
"inputArtifacts": [], "name": "ClearedForProduction", "actionTypeId": {
"category": "Approval", "owner": "AWS", "version": "1", "provider": "Manual"
}, "outputArtifacts": [], "configuration": {
"NotificationArn": "(The SNS topic to send approval requests to)"
}, "runOrder": 1
}
]
}, {
"name": "Deploy", "actions": [
{
"inputArtifacts": [
{
"name": "MyApp"
}, {
"name": "MyConfig"
}, {
"name": "MyTemplate"
}
], "name": "CreateChangeSet", "actionTypeId": {
"category": "Deploy", "owner": "AWS", "version": "1", "provider": "CloudFormation"
}, "outputArtifacts": [], "configuration": {
"ActionMode": "CHANGE_SET_REPLACE", "ChangeSetName": "B", "RoleArn": "(The role that CloudFormation will use)", "Capabilities": "CAPABILITY_IAM", "StackName": "JesusCaresCommitmentFormsProd", "ParameterOverrides": "{\n\"Stage\": \"prod\"\n}", "TemplateConfiguration": "MyConfig::config.json", "TemplatePath": "MyTemplate::commitment-form-processor-replaced.template"
}, "runOrder": 1
}, {
"inputArtifacts": [], "name": "ExecuteChangeSet", "actionTypeId": {
"category": "Deploy", "owner": "AWS", "version": "1", "provider": "CloudFormation"
}, "outputArtifacts": [], "configuration": {
"StackName": "JesusCaresCommitmentFormsProd", "ActionMode": "CHANGE_SET_EXECUTE", "ChangeSetName": "B"
}, "runOrder": 2
}
]
}
], "artifactStore": {
"type": "S3", "location": "(The S3 bucket that CodePipeline will store artifacts in)"
}, "name": "commitment-form-processor", "version": 12
}, "metadata": {
"pipelineArn": "(This pipeline's ARN)", "updated": 1512492555.381, "created": 1512422253.948
}
}

Clone this wiki locally