AWS CodeDeploy - Features, integrations, alternatives & more
What it does
This action deploys an application to AWS CodeDeploy, the fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers.
How it works
AWS Code Deploy uses Buddy’s dedicated integration with an Amazon Web Services (AWS) account. Once it’s set up, it allows to select an AWS account, a region, an application or a group to deploy to. It ZIPs provided path from the pipeline’s filesystem, deploys it to Amazon S3 and sends a request to CodeDeploy to create a new deployment. Check a list of AWS policies required by this integration.
AWS Code Deploy Action Features
- Deployment status: wait until deployment has finished or don’t wait for deployment to finish and immediately proceed to the next pipeline step
- By default, Buddy will create a bucket buddy-eb-$AWS_REGION-$INTEGRATION_ID for this action and will use it for future deployments. You can also define a new bucket yourself or specify an existing one
- Setting description that will be displayed in CodeDeploy
- Updating outdated instances only: indicates to deploy only to instances that are not running the latest application revision
Ignoring application stop failures:
- If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop.
- If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.
- During a deployment, the AWS CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment (all other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment may fail.
- If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored.
- File exists behavior: setting how AWS CodeDeploy handles files that already exist in a deployment target location but weren't a part of the previous successful deployment
- It’s possible to exclude paths and file types from transfer using patterns, specific directories and file names.
- Input fields: Source Path, BucketName, Description support Environment variables
- The action can be configured in YAML mode. See AWS CodeDeploy YAML parameters and AWS CodeDeploy YAML config example
- Buddy's AWS CodeDeploy API is supported
- The action supports conditional execution: it can be run on each execution, only if there are changes in the repository or specific paths since last execution or if an environment variable has a specific value