JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 766
  • Score
    100M100P100Q114651F
  • License MIT

semantic-release plugin to tag and push docker images

Package Exports

  • @eclass/semantic-release-docker

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@eclass/semantic-release-docker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@eclass/semantic-release-docker

npm build downloads dependencies devDependency Status Coverage Status Maintainability semantic-release

semantic-release plugin to tag and push docker images

Step Description
verifyConditions Verify the presence of the baseImageName, and registries options in plugin config.
prepare Tag docker images.
publish Push docker images.

Install

npm i -D @eclass/semantic-release-docker

Usage

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

{
  "plugins": [
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/git",
    "@semantic-release/gitlab",
    "@eclass/semantic-release-docker"
  ]
}

Configuration

Options

Variable Description
baseImageName Name of the previously constructed docker image. Required.
registries Array of objects with username, password, url and imageName. "username" and "password" are environment variables. Required. Example: {"username": "DOCKER_USER", "password": "DOCKER_PASSWORD", "url": "docker.pkg.github.com", "imageName": "docker.pkg.github.com/myuser/myrepo/myapp"}
additionalTags Array of addiotional tags to push. Optional. Example: ["beta", "next"]

Environment variables

Environment variables are variables. Depends of registries option.

Variable Description
DOCKER_USER username for docker registry.
DOCKER_PASSWORD password for docker registry.

Examples

Push images to many docker registry

{
  "plugins": [
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/git",
    "@semantic-release/gitlab",
    [
      "@eclass/semantic-release-docker",
      {
        "baseImageName": "myapp",
        "registries": [
          {
            "url": "registry.gitlab.com",
            "imageName": "registry.gitlab.com/mygroup/myapp",
            "user": "CI_REGISTRY_USER",
            "password": "CI_REGISTRY_PASSWORD"
          },
          {
            "url": "docker.io",
            "imageName": "docker.io/myuser/myapp",
            "user": "DOCKER_REGISTRY_USER",
            "password": "DOCKER_REGISTRY_PASSWORD"
          },
          {
            "url": "docker.pkg.github.com",
            "imageName": "docker.pkg.github.com/myuser/myrepo/myapp",
            "user": "GITHUB_USER",
            "password": "GITHUB_TOKEN"
          },
          {
            "url": "123456789012.dkr.ecr.us-east-1.amazonaws.com",
            "imageName": "123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp",
            "user": "AWS_DOCKER_USER",
            "password": "AWS_DOCKER_PASSWORD"
          }
        ],
        "additionalTags": [
          "next",
          "beta"
        ]
      }
    ]
  ]
}
# .gitlab-ci.yml
release:
  image: node:alpine
  stage: release
  before_script:
    - docker build -t myapp .
  script:
    - npx semantic-release
  only:
    - master
# .travis.yml
language: node_js
cache:
  directories:
    - ~/.npm
node_js:
  - "12"
stages:
  - test
  - name: deploy
    if: branch = master
jobs:
  include:
    - stage: test
      script: npm t
    - stage: deploy
      before_script: docker build -t myapp .
      script: npx semantic-release

License

MIT