Merge branch 'extended' into 'registry'

Build normal and extended versions for the registry images

See merge request pages/hugo!83
This commit is contained in:
Achilleas Pipinellis 2019-05-23 20:58:10 +00:00
commit e21a102e17
3 changed files with 42 additions and 20 deletions

View File

@ -4,8 +4,9 @@ image: docker:latest
# improved performance.
variables:
DOCKER_DRIVER: overlay2
IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest
IMAGE_NAME: $CI_REGISTRY_IMAGE
IMAGE_NAME_HUGO: $CI_REGISTRY_IMAGE/hugo
IMAGE_NAME_HUGO_EXTENDED: $CI_REGISTRY_IMAGE/hugo_extended
services:
- docker:dind
@ -21,17 +22,29 @@ before_script:
test:
stage: test
script:
- docker build -t $IMAGE_NAME .
- docker run -v `pwd`:/git $IMAGE_NAME /bin/sh -c "wget -qO- https://fedoraproject.org/static/hotspot.txt | grep OK && cd /git && hugo"
- TESTS="wget -qO- https://fedoraproject.org/static/hotspot.txt | grep OK && cd /git && hugo"
- docker build --build-arg HUGO=hugo -t $IMAGE_NAME_HUGO .
- docker build --build-arg HUGO=hugo_extended -t $IMAGE_NAME_HUGO_EXTENDED .
- docker run -v `pwd`:/git $IMAGE_NAME_HUGO /bin/sh -c "$TESTS"
- docker run -v `pwd`:/git $IMAGE_NAME_HUGO_EXTENDED /bin/sh -c "$TESTS"
except:
- schedules
deploy:
stage: deploy
script:
- docker build -t $IMAGE_NAME -t $IMAGE_LATEST .
- docker build --build-arg HUGO=hugo -t $IMAGE_NAME_HUGO .
- docker build --build-arg HUGO=hugo_extended -t $IMAGE_NAME_HUGO_EXTENDED .
- docker tag $IMAGE_NAME_HUGO $IMAGE_NAME
- docker tag $IMAGE_NAME_HUGO $IMAGE_NAME:$CI_COMMIT_REF_NAME
- docker tag $IMAGE_NAME_HUGO $IMAGE_NAME_HUGO:$CI_COMMIT_REF_NAME
- docker tag $IMAGE_NAME_HUGO_EXTENDED $IMAGE_NAME_HUGO_EXTENDED:$CI_COMMIT_REF_NAME
- docker push $IMAGE_NAME
- docker push $IMAGE_LATEST
- docker push $IMAGE_NAME:$CI_COMMIT_REF_NAME
- docker push $IMAGE_NAME_HUGO
- docker push $IMAGE_NAME_HUGO:$CI_COMMIT_REF_NAME
- docker push $IMAGE_NAME_HUGO_EXTENDED
- docker push $IMAGE_NAME_HUGO_EXTENDED:$CI_COMMIT_REF_NAME
only:
- tags

View File

@ -1,15 +1,21 @@
FROM alpine:latest
ENV HUGO_VERSION 0.55.6
ENV HUGO_SHA 39d3119cdb9ba5d6f1f1b43693e707937ce851791a2ea8d28003f49927c428f4
ARG HUGO=hugo
ARG HUGO_VERSION=0.55.6
ARG HUGO_APK="ca-certificates openssl git"
ARG HUGO_SHA=39d3119cdb9ba5d6f1f1b43693e707937ce851791a2ea8d28003f49927c428f4
ARG HUGO_EXTENDED_APK="libc6-compat libstdc++"
ARG HUGO_EXTENDED_SHA=8962b8cdc0ca220da97293cea0bb1b31718cb4d99d0766be6865cb976b1c1805
# Install HUGO
RUN set -eux && \
apk add --update --no-cache \
ca-certificates \
openssl \
git && \
wget -O ${HUGO_VERSION}.tar.gz https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz && \
case ${HUGO} in \
*_extended) \
HUGO_APK="${HUGO_APK} ${HUGO_EXTENDED_APK}" \
HUGO_SHA="${HUGO_EXTENDED_SHA}" ;; \
esac && \
apk add --update --no-cache ${HUGO_APK} && \
wget -O ${HUGO_VERSION}.tar.gz https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/${HUGO}_${HUGO_VERSION}_Linux-64bit.tar.gz && \
echo "${HUGO_SHA} ${HUGO_VERSION}.tar.gz" | sha256sum -c && \
tar xf ${HUGO_VERSION}.tar.gz && mv hugo* /usr/bin/hugo && \
rm -rf ${HUGO_VERSION}.tar.gz && \
@ -18,4 +24,4 @@ RUN set -eux && \
EXPOSE 1313
CMD ["/usr/local/bin/hugo"]
CMD ["/usr/bin/hugo"]

View File

@ -62,8 +62,9 @@ for asset in release['assets']:
exit(1)
for line in rchecksums.text.split("\n"):
if 'hugo_%s_Linux-64bit.tar.gz'%(release['name'][1:]) in line:
checksum = line[:64]
break
hugo_checksum = line[:64]
if 'hugo_extended_%s_Linux-64bit.tar.gz'%(release['name'][1:]) in line:
hugo_extended_checksum = line[:64]
# Get Dockerfile from repository
rdockerfile = requests.get('%s/projects/%s/repository/files/Dockerfile/raw?ref=registry'%(GITLAB_URL, GITLAB_PROJECT))
@ -75,10 +76,12 @@ dockerfile = rdockerfile.text.split("\n")
# Replace env variables
for index, line in enumerate(dockerfile):
if "ENV HUGO_VERSION" in line:
dockerfile[index] = "ENV HUGO_VERSION %s"%release['name'][1:]
if "ENV HUGO_SHA" in line:
dockerfile[index] = "ENV HUGO_SHA %s"%checksum
if "ARG HUGO_VERSION" in line:
dockerfile[index] = "ARG HUGO_VERSION=%s"%release['name'][1:]
if "ARG HUGO_SHA" in line:
dockerfile[index] = "ARG HUGO_SHA=%s"%hugo_checksum
if "ARG HUGO_EXTENDED_SHA" in line:
dockerfile[index] = "ARG HUGO_EXTENDED_SHA=%s"%hugo_extended_checksum
# Update Dockerfile on repository
requestData = {