Skip to content

Latest commit

 

History

History
92 lines (73 loc) · 5.05 KB

README.md

File metadata and controls

92 lines (73 loc) · 5.05 KB

@rimac-technology/semantic-release-ecr

semantic-release plugin to publish a docker image to the AWS Elastic Container Registry

Commitizen friendly Conventional Changelog semantic-release: angular Formatted with 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

# For npm users
$ npm install --save-dev @rimac-technology/semantic-release-ecr

# For yarn users
$ 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"]
            }
        ]
    ]
}