From 726bf35b766448a4659f4cee11defa7a7e3b0c12 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 2 Dec 2019 16:58:50 -0700 Subject: [PATCH] Fix Docker build for develop and publish a /version file Fixes https://github.com/vector-im/riot-web/issues/10426 --- .dockerignore | 1 - Dockerfile | 3 +++ scripts/docker-link-repos.sh | 11 +++++++++++ scripts/docker-write-version.sh | 20 ++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 scripts/docker-write-version.sh diff --git a/.dockerignore b/.dockerignore index d4eb9eeb..45ead65e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ # Exclude a bunch of stuff which can make the build context a larger than it needs to be -.git/ test/ webapp/ lib/ diff --git a/Dockerfile b/Dockerfile index 50760c35..a92cdec4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,6 +21,9 @@ RUN yarn build # Copy the config now so that we don't create another layer in the app image RUN cp /src/config.sample.json /src/webapp/config.json +# Ensure we populate the version file +RUN dos2unix /src/scripts/docker-write-version.sh && sh /src/scripts/docker-write-version.sh + # App FROM nginx:alpine diff --git a/scripts/docker-link-repos.sh b/scripts/docker-link-repos.sh index 9f17188e..66bd9842 100644 --- a/scripts/docker-link-repos.sh +++ b/scripts/docker-link-repos.sh @@ -2,6 +2,17 @@ set -ex +# Automatically link to develop if we're building develop, but only if the caller +# hasn't asked us to build something else +BRANCH=$(git rev-parse --abbrev-ref HEAD) +if [ $USE_CUSTOM_SDKS == false ] && [ $BRANCH == 'develop' ] +then + echo "using develop dependencies for react-sdk and js-sdk" + USE_CUSTOM_SDKS=true + JS_SDK_BRANCH='develop' + REACT_SDK_BRANCH='develop' +fi + if [ $USE_CUSTOM_SDKS == false ] then echo "skipping react-sdk and js-sdk installs: USE_CUSTOM_SDKS is false" diff --git a/scripts/docker-write-version.sh b/scripts/docker-write-version.sh new file mode 100644 index 00000000..0ca2a477 --- /dev/null +++ b/scripts/docker-write-version.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +set -ex + +TAG=$(git describe --dirty --tags) +BRANCH=$(git rev-parse --abbrev-ref HEAD) +DIST_VERSION=$TAG + +# If the branch comes out as HEAD then we're probably checked out to a tag, so if the thing is *not* +# coming out as HEAD then we're on a branch. When we're on a branch, we want to resolve ourselves to +# a few SHAs rather than a version. +if [ $BRANCH != 'HEAD' ] +then + REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD) + JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD) + VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop + DIST_VERSION=$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA +fi + +echo $DIST_VERSION > /src/webapp/version