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