1.3.2 • Published 2 years ago
serverless-codepipeline-plugin v1.3.2
serverless-codepipeline-plugin
Plugin for serverless to create a code pipeline.
Installation
npm i serverless-codepipeline-plugin
Usage
Minimal Example:
custom:
codePipeline:
image: aws/cli
artifactBucket: my-bucket
source:
repository: my-repository
stages:
- name: build
spec: ci/build.yml
- name: deploy-dev
spec: ci/deploy-dev.yml
- name: deploy-prod
spec: ci/deploy-prod.yml
General Properties
Property | Type | Required | Description |
---|---|---|---|
computeType | string | false | Defaults to BUILD_GENERAL1_SMALL . See allowed values. |
enabled | boolean | false | Set to false if pipeline should not be deployed. This is useful for stage dependent creation of pipeline. Defaults to true. |
enabledOn | string | false | Specify name of stage during which the pipeline should be created. This overrides enabled . |
image | string | true | Provide a docker image name. |
artifactBucket | string | true | Bucket name for stored artifacts |
env | Record<string, string> | false | Map of environment variables that are made available to each stage. |
source | Source Object | true | Configuration for source. |
stages | Array\ | true | List of stages. |
logRetention | number | false | Number of days for which codebuild logs are retained in cloudwatch. See allowed values. Defaults to no limit. |
tags | Record<string, string> | false | Map of tags. Merged with tags defined in provider. The tags are applied to all created resources (IAM Role, CodeBuild Projects and Pipeline). |
vpc | VPCConfig Object | false | Contains the configuration for a VPC. This will be used for all stages. |
Source Properties
Currently, the plugin supports CodeCommit, GitHub and S3 as sources.
CodeCommit Source Properties
Property | Type | Required | Description |
---|---|---|---|
type | 'codecommit' | false | When no type is defined, it defaults to codecommit . |
repository | string | true | Name of repository in codecommit. |
branch | string | false | Branch that should be checked out. Defaults to master . |
trigger | boolean | false | Set to false if the pipeline should not be triggered on source changes. Defaults to true . |
Note: With version 1.3.x and above the trigger is no longer polling. Instead, an event rule is created that triggers the pipeline.
GitHub Source Properties
Property | Type | Required | Description |
---|---|---|---|
type | 'github' | true | Type must be set to github to use it as a source. |
repository | string | true | Name of repository with prepended owner (e.g. 0ptional/serverless-codepipeline ) |
branch | string | false | Branch that should be checked out. Defaults to master . |
trigger | boolean | false | Set to false if the pipeline should not be triggered on source changes. Defaults to true . |
githubToken | string | true | To use repositories on GitHub you must provide an OAuth token for a GitHub user. For a guide on how to create the token, read this. |
S3 Source Properties
Property | Type | Required | Description |
---|---|---|---|
type | 's3' | true | Type must be set to s3 to use it as a source. |
s3Bucket | string | true | Name of S3 Bucket. |
s3Key | string | false | Key to object (must be zip archive). |
trigger | boolean | false | Set to false if the pipeline should not be triggered on source changes. Defaults to true . |
Stage Properties
Property | Type | Required | Description |
---|---|---|---|
name | string | true | Stage name. Output names are also based on stage name. |
spec | string | true | Location of the CodeBuild spec file within the primary input (source). |
inputs | string[] | false | Specify all stage names from which a stage should receive additional input. The source input is always the primary. |
image | string | false | Specify a docker image if this stage should use a different image. |
env | Record<string, string> | false | Adds stage specifc environment variables. Stage variables are merged with global variables. |
computeType | string | false | Specify if this stage should run with a different compute type than provided in general config. |
manualExecution | boolean | false | Set to true, if this stage should not run automatically. Defaults to false . |
VPCConfig Properties
Property | Type | Required | Description |
---|---|---|---|
id | string | true | VPC ID. |
subnets | string[] | true | List of VPC subnets to use. |
securityGroupIds | string[] | true | List of security group ids. |
Full Example
custom:
codepipeline:
# global config
computeType: BUILD_GENERAL1_SMALL
# enabled: ${self:custom.${self:provider.stage}.deployPipeline}
enabledOn: staging # use this for a single stage dependent deployment
image: aws/cli
artifactBucket: my-bucket
logRetention: 7
tags:
PipelineTag: value
env:
PIPELINE_ENV_VAR: hello
# source config
source:
type: github
repository: '0ptional/serverless-codepipeline'
branch: master
trigger: false
githubToken: abc*******
# stage config
stages:
- name: build
spec: ci/build.yml
image: aws/cli
computeType: BUILD_GENERAL1_SMALL
env:
STAGE_ENV_VAR: world
- name: deploy-dev
spec: ci/deploy-dev.yml
inputs: [ build ]
- name: deploy-prod
manualExecution: true
spec: ci/deploy-prod.yml
inputs: [ build ]
Todos
- Support ECR as source
1.2.0
2 years ago
1.2.8
2 years ago
1.2.7
2 years ago
1.2.6
2 years ago
1.2.5
2 years ago
1.2.4
2 years ago
1.3.2
2 years ago
1.2.3
2 years ago
1.3.1
2 years ago
1.2.2
2 years ago
1.3.0
2 years ago
1.2.1
2 years ago
1.2.9
2 years ago
1.2.12
2 years ago
1.2.10
2 years ago
1.2.11
2 years ago
1.1.0
5 years ago
1.0.2
5 years ago
1.0.1
5 years ago
1.0.0
5 years ago
0.0.4
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago
0.0.1
5 years ago