From 09dcca27a85d9040a23acd41d47ce73a4dcde156 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Mon, 5 Mar 2018 17:06:44 -0700 Subject: [PATCH] added revision hash --- Dockerfile | 4 ++++ config.js | 4 ++++ routes/api/v1/index.js | 5 +++-- scripts/docker.sh | 13 ++++++++++--- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4d0fea440..0b7c8caa4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,10 @@ COPY . /usr/src/app # Ensure the runtime of the container is in production mode. ENV NODE_ENV production +# Store the current git revision. +ARG REVISION_HASH +ENV REVISION_HASH=${REVISION_HASH} + # Install app dependencies and build static assets. RUN yarn global add node-gyp && \ yarn install --frozen-lockfile && \ diff --git a/config.js b/config.js index 956e7ac8f..b24c5dfc9 100644 --- a/config.js +++ b/config.js @@ -55,6 +55,10 @@ const CONFIG = { ? process.env.TALK_LOGGING_LEVEL : 'info', + // REVISION_HASH when using the docker build will contain the build hash that + // it was built at. + REVISION_HASH: process.env.REVISION_HASH, + //------------------------------------------------------------------------------ // JWT based configuration //------------------------------------------------------------------------------ diff --git a/routes/api/v1/index.js b/routes/api/v1/index.js index e331d09d8..46d5c0278 100644 --- a/routes/api/v1/index.js +++ b/routes/api/v1/index.js @@ -1,10 +1,11 @@ const express = require('express'); -const pkg = require('../../../package.json'); +const { version } = require('../../../package.json'); +const { REVISION_HASH } = require('../../../config'); const router = express.Router(); // Return the current version. router.get('/', (req, res) => { - res.json({ version: pkg.version }); + res.json({ version, revision: REVISION_HASH }); }); router.use('/account', require('./account')); diff --git a/scripts/docker.sh b/scripts/docker.sh index f11aeb208..dc5759e5e 100755 --- a/scripts/docker.sh +++ b/scripts/docker.sh @@ -54,9 +54,16 @@ deploy_branch() { docker push coralproject/talk:$CIRCLE_BRANCH-onbuild } +ARGS="" + +if [[ -n "$CIRCLE_SHA1" ]] +then + ARGS="--build-arg REVISION_HASH=${CIRCLE_SHA1}" +fi + # build the repo, including the onbuild tagged versions. -docker build -t coralproject/talk:latest -f Dockerfile . -docker build -t coralproject/talk:latest-onbuild -f Dockerfile.onbuild . +docker build -t coralproject/talk:latest ${ARGS} -f Dockerfile . +docker build -t coralproject/talk:latest-onbuild ${ARGS} -f Dockerfile.onbuild . if [ "$1" = "deploy" ] then @@ -80,4 +87,4 @@ then deploy_branch fi fi -fi \ No newline at end of file +fi