npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cjpablo92/semantic-release-ecr

v1.0.17

Published

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

Downloads

29

Readme

@cjpablo92/semantic-release-ecr

semantic-release plugin to publish a docker image to the AWS Elastic Container Registry using AWS IAM roles, forked from RimacTechnology/semantic-release-ecr, also adding the ability to build and push multiple components at the same time.

Commitizen friendly Conventional Changelog semantic-release: angular Formatted with Biome

| Step | Description | | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | verifyConditions | Verify the presence of the AWS_DEFAULT_REGION environment variables and docker imageName plugin option | | publish | Publish the docker image to the aws ecr. | | prepare | Builds the docker image |

Install

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

# For yarn users
$ yarn add --dev @cjpablo92/semantic-release-ecr

Usage

The plugin can be configured in the semantic-release configuration file:

Push single component

{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/npm",
        [
            "@cjpablo92/semantic-release-ecr",
            {
                "imageName": "my-ecr-image"
            }
        ]
    ]
}

Push multiple components

{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/npm",
        [
            "@cjpablo92/semantic-release-ecr",
            {
                "config": [
                    {
                        "imageName": "my-ecr-image-component-1"
                    },
                    {
                        "imageName": "my-ecr-image-component-2"
                    }
                ]
            }
        ]
    ]
}

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 | ✓ |

Note: If AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are not present it will use the default credentials and their fallbacks (like IAM roles).

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 | | | bumpParents| Flag to bump related tags along with the specific release version (E.G: if set to true when publishing the 1.5.0 version it will also publish 1 and 1.5) | false | | | suffix | Suffix to add on the buildign image step 5 | | |

Example

Build and push single component

{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/npm",
        [
            "@cjpablo92/semantic-release-ecr",
            {
                "buildImage": "docker build . -t my-ecr-image",
                "imageName": "my-ecr-image",
                "tags": ["latest", "$NODE_ENV"],
                "bumpParents": false,
                "suffix": "sufix"
            }
        ]
    ]
}

Build and push multiple components

{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/npm",
        [
            "@cjpablo92/semantic-release-ecr",
            { 
                "config": [
                    {
                        "buildImage": "docker build . -t my-ecr-image-component-1",
                        "imageName": "my-ecr-image",
                        "tags": ["latest", "$NODE_ENV", "component-1"],
                        "bumpParents": false,
                        "suffix": "component-1"
                    },
                    {
                        "buildImage": "docker build . -t my-ecr-image-component-2",
                        "imageName": "my-ecr-image",
                        "tags": ["latest", "$NODE_ENV", "component-2"],
                        "bumpParents": false,
                        "suffix": "component-2"
                    }
                ]
            }
        ]
    ]
}

Run locally

npm install -g tsx
npx tsx src/localRun.ts