Skip to content
Snippets Groups Projects
Commit 9b028b48 authored by YAEGASHI Takeshi's avatar YAEGASHI Takeshi Committed by YAEGASHI Takeshi
Browse files

Build normal and extended versions for the registry images

Closes pages/hugo#29
parent 17fb5d5a
No related branches found
Tags 0.51
No related merge requests found
......@@ -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
......
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"]
......@@ -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 = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment