@rimac-technology/semantic-release-ecr
semantic-release plugin to publish a docker image to the AWS Elastic
Container Registry
![Formatted with Biome](https://img.shields.io/badge/Formatted_with-Biome-60a5fa?style=flat&logo=biome)
Step | Description |
---|
verifyConditions | Verify the presence of the AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY and AWS_DEFAULT_REGION environment variables and docker imageName plugin option |
publish | Publish the docker image to the aws ecr. |
Install
$ npm install --save-dev @rimac-technology/semantic-release-ecr
$ yarn add --dev @rimac-technology/semantic-release-ecr
Usage
The plugin can be configured in the
semantic-release configuration file:
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
[
"@rimac-technology/semantic-release-ecr",
{
"imageName": "my-ecr-image"
}
]
]
}
Prerequisites
To use this plugin you need to set up an ECR container registry if you don't already have on. Here is a
AWS ECR Getting started guide from AWS on how to set
up a new registry.
IMPORTANT! This plugin expects the docker image to be built already, or you can build it with "dockerImage" configuration
option
Configuration
Environment variables
Variable | Description | Required |
---|
AWS_ACCESS_KEY_ID | AWS access key id | ✓ |
AWS_SECRET_ACCESS_KEY | AWS secret key | ✓ |
AWS_DEFAULT_REGION | AWS region | ✓ |
Options
Options | Description | Default | Required |
---|
buildImage | Docker command which will build an image | | |
imageName | The name of the image to push to the ECR. The name should be the same as your ECR repository name (example: my-ecr-image ). Remember that you don't need to add your registry URL in front of the image name, the plugin will fetch this URL from AWS and add it for you. Don't add tag in the imageName | | ✓ |
tags | Array of string which can be static values like latest or environment variables like $NODE_ENV | nextRelease.version | |
Example
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
[
"@rimac-technology/semantic-release-ecr",
{
"buildImage": "docker build . -t my-ecr-image",
"imageName": "my-ecr-image",
"tags": ["latest", "$NODE_ENV"]
}
]
]
}