-
Notifications
You must be signed in to change notification settings - Fork 0
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
}
}