Semantic release plugin to publish a docker image to google container registry
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
scripts
.editorconfig
.gitignore
.npmrc
.prettierignore
.travis.yml
.yarnrc
LICENSE
README.md
index.js
package.json

README.md

semantic-release-gcr

build dependencies Status devDependencies Status peerDependencies Status code style: prettier semantic-release license Greenkeeper badge

Set of semantic-release plugins for publishing a docker image to google container registry.

{
  "release": {
    "verifyConditions": "semantic-release-gcr",
    "publish": {
      "path": "semantic-release-gcr",
      "name": "[registry-id]/[project-id]/[image-name]"
    }
  }
}

Windows Support Disclaimer

Currently this plugin will only runs in *nix systems, as it uses shell scripts to log into google cloud. If you need Windows support Pull-requests are welcome.

Configuration

Your credentials have to be configured with the environment variables GCLOUD_EMAIL and GCLOUD_KEY.

You will need to first set up a service account on google cloud. You will need the email address and downloaded json key file project_name-xxxxx.json.

name value
GCLOUD_EMAIL {string_of_characters}@developer.gserviceaccount.com
GCLOUD_KEY base64-encoded version of project_name-xxxxx.json

On OSX and Linux, you can get the base64 encoded version like this:

cat project_name-xxxxx.json | base64

In addition, you need to specify the name of the image as the name setting.

Plugins

verifyConditions

Verify that all needed configuration is present and login to the google container registry.

publish

Tag the image specified by name with the new version, push it to google container registry and update the latest tag.

Example .travis.yml

jobs:
  include:
    - stage: release
      language: node_js
      node_js: '8'
      services:
        - docker
      script:
        - docker build -t username/imagename .
        - npm run semantic-release

stages:
  - test
  - name: release
    if: branch = master AND type = push AND fork = false

branches:
  except:
    - /^v\d+\.\d+\.\d+$/