Skip to content

Node RED Docker Release Process

raymondmouthaan edited this page Oct 21, 2019 · 7 revisions

This page describes the release process of the Node-RED Docker images and manifest list and is intended for the maintainers of Node-RED Docker images.

Travis CI

For the build, test and publish process, the Node-RED Docker project uses Travis CI. Travis CI gets triggered by any changes to the GitHub repository (commits & PRs) independently of any branch.

When changes to the github repo are "detected" by Travis CI, automatically the build process starts. All Node-RED images are being built locally on the Travis CI build server. At this stage nothing gets pushed to Node-REDs Docker Repo on Docker Hub. These changes can be done manually or by Greenkeeper*

If you don’t want to run a build for a particular commit for any reason, you may instruct Travis CI to skip building this commit via a command in the commit message. The command should be one of the following forms: [<KEYWORD> skip] or [skip <KEYWORD>] where <KEYWORD> is either ci, travis, travis ci, travis-ci, or travisci.

For example: [skip travis] Update README

*) Greenkeeper monitors NPM dependencies for this project, using the packages listed in package.json. When a new Node-RED release is published to NPM, Greenkeeper sends a pull request with an updated package.json. Once the PR has been accepted and merged, Travis CI starts building the images

Publishing to Docker Hub

To publish Node-RED Docker images and associated manifest lists to Docker Hub a release must be created (manually) on the GitHub Node-RED Releases page.

Docker Hub Node-RED Repositories

There are two Node-RED Repositories available, resp. nodered/node-red and nodered/node-red-dev.

  • nodered/node-red is where stable images and manifest lists are stored.
  • nodered/node-red-dev is where unstable images and manifest lists are stored and used for testing purpose only.

Tag Version Naming Convention

  • A tag version should always start with a v, this triggers Travis CI to build the images and manifest lists and publish them to Docker Hub.
  • When the tag contains only numbers, dots and/or dashes a stable release is assumed and images and manifest lists are published to nodered/node-red.
  • When the tag contains beta then images and manifest lists are tagged as beta and published to nodered/node-red-dev.
  • For all other tags images and manifest lists are tagged as test and published to nodered/node-red-dev.

Examples:

Github Tag Docker Hub Tag Repo
v1.0.2 - This tag does not contain characters, so a stable release is assumed. nodered/node-red
- images are tagged by its version 0.20.8 and manifest lists are tagged by latest
v1.0 - This tag does not contain characters, so a stable release is assumed. nodered/node-red
- images are tagged by it's version 1.0 and manifest lists are tagged by latest
v1.0-test.1 - This tag does contain test, so a test release is assumed. nodered/node-red-dev
- images are tagged by it's version 1.0-test.1 and manifest lists are tagged by test
v1.0-beta.4 - This tag does contain beta, so a beta release is assumed. nodered/node-red-dev
- images are tagged by it's version 1.0-beta.1 and manifest lists are tagged by beta
v1.0A - This tag does contain a character, so a test release is assumed. nodered/node-red-dev
- images are tagged by it's version 1.0A and manifest lists are tagged by test
v1.0.0-i386 - This tag does contain characters, so a test release is assumed. nodered/node-red-dev
- images are tagged by it's version 1.0.0-i386 and manifest lists are tagged by test

beta

The aim of beta is to release a beta version of Node-RED Docker images and manifest list, to test the images and manifest lists. These images and manifest lists are closer to a final release and not advised to be used in a production environment. Curious users can help test these images and manifest lists and raise there issues on GitHub. The version of Node-RED in the package.json must contain beta.

test

The aim of test is to release a test version of Node-RED Docker images and manifest list, to test the images and manifest lists. These images and manifest lists are far from stable and not advised to be used in a production environment. test can be seen as alpha. Curious users can help test these images and manifest lists and raise there issues on GitHub. The version of Node-RED in the package.json does not necessarily has to contain beta.

Clone this wiki locally