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]"
}
}
}
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.
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.
Verify that all needed configuration is present and login to the google container registry.
Tag the image specified by name
with the new version, push it to google container registry and update the latest
tag.
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+$/