Build normal and extended versions for the registry images
Closes pages/hugo#29
This commit is contained in:
parent
17fb5d5ad4
commit
9b028b48b5
@ -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
|
||||
|
||||
|
22
Dockerfile
22
Dockerfile
@ -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"]
|
||||
|
15
update.py
15
update.py
@ -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 = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user