AWS CodePipeline Concepts: Difference between revisions
Jump to navigation
Jump to search
(→Action) |
|||
Line 13: | Line 13: | ||
An action is a task performed on an artifact, executed as part of the sequence in the [[#Stage|stage]] of a pipeline. The action may occur in a specified order, or in parallel, depending on their configuration. | An action is a task performed on an artifact, executed as part of the sequence in the [[#Stage|stage]] of a pipeline. The action may occur in a specified order, or in parallel, depending on their configuration. | ||
Syntactic and semantic details about actions can be found in the [https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html ActionDeclaration] page. | |||
==Action Name== | ==Action Name== |
Revision as of 17:30, 14 March 2019
External
- https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html
- CreatePipeline API Request Reference
Internal
Stage
Action
An action is a task performed on an artifact, executed as part of the sequence in the stage of a pipeline. The action may occur in a specified order, or in parallel, depending on their configuration.
Syntactic and semantic details about actions can be found in the ActionDeclaration page.
Action Name
An action name must match the regular expression pattern: [A-Za-z0-9.@\-_]+
Action Types
Currently, six types of actions are supported:
Custom actions can also be developed.
Source
Resources:
MyPipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
...
Stages:
- Name: Source
Actions:
- InputArtifacts: []
Name: !Sub 'PullBranch-${Branch}'
ActionTypeId:
Category: Source
Owner: ThirdParty
Version: '1'
Provider: GitHub
OutputArtifacts:
- Name: ContainerSrc
Configuration:
Owner: 'novaordis-llc'
Repo: !Sub '${GitHubOrganizationUrl}/${GitHubRepositoryName}'
Branch: !Ref Branch
OAuthToken: ...
RunOrder: 1
GitHub Authentication
Build
External
- Build Action Integration
- Add an AWS CodeBuild Build Action to a Pipeline
- Use CodePipeline with AWS CodeBuild to Test Code and Run Builds
CodeBuild can be added as a build action to the build stage of the pipeline. Existing build projects can be used, or new ones can be created in the CodePipeline console.
Resources:
MyPipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
...
Stages:
...
- Name: Build
Actions:
- Name: !Sub 'CodeBuild build driven by ${Buildspec}'
ActionTypeId:
Category: Build
Owner: AWS
Version: '1'
Provider: CodeBuild
InputArtifacts:
- Name: ContainerSrc
OutputArtifacts:
- Name: ContainerBuild
Configuration:
ProjectName: !Ref CodeBuildProject
RunOrder: 1
Test
Deploy
Resources:
MyPipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
...
Stages:
...
- Name: Deploy
Actions:
- Name: Deploy
ActionTypeId:
Category: Deploy
Owner: AWS
Version: '1'
Provider: CloudFormation
InputArtifacts:
- Name: ContainerSrc
- Name: ContainerBuild
Configuration:
StackName: !Join ['-', [!Sub '${AWS::Region}', !Join ['-', !Split ['.', !Ref GitHubRepositoryName]], 'deploy']]
ActionMode: CREATE_UPDATE
Capabilities: CAPABILITY_IAM
TemplatePath: !Sub ContainerSrc::${SvcTemplate}
TemplateConfiguration: ContainerBuild::overrides.json
ParameterOverrides: !Sub '{ "ECRRepository": "${ECRRepository}", "EnvironmentName": "${CFEnvironment}", "Image": "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${ECRRepository}", "DeploymentStackName": "${DeploymentStackName}", "GitHubRepo": "${GitHubRepositoryName}" }'
RoleArn:
Fn::ImportValue: !Sub '${AWS::Region}-CloudFormationDeploymentRole'
OutputArtifacts: []
RunOrder: 1
Notes to organize:
- The parameters specified in the "ParameterOverrides" must match with the sub-template parameters.
- If "override.json" is declared as "TemplateConfiguration" and the previous build task does not create the override.json file, the deployment stage will fail with an S3 error.