From 442afc9b58e84474092fef20487a8eab859519cd Mon Sep 17 00:00:00 2001 From: Flea Dope Date: Wed, 11 Aug 2021 19:42:36 -0700 Subject: [PATCH] refactor build code, updated hugo version. --- docker/Dockerfile.linux.amd64 | 20 +++++++++++--------- docker/Dockerfile.linux.arm | 20 +++++++++++--------- docker/Dockerfile.linux.arm64 | 19 ++++++++++--------- docker/scripts/build_hugo.sh | 22 ++++++++++++++++++++++ 4 files changed, 54 insertions(+), 27 deletions(-) create mode 100755 docker/scripts/build_hugo.sh diff --git a/docker/Dockerfile.linux.amd64 b/docker/Dockerfile.linux.amd64 index b55be66..e7b3cb8 100644 --- a/docker/Dockerfile.linux.amd64 +++ b/docker/Dockerfile.linux.amd64 @@ -1,10 +1,12 @@ -FROM amd64/golang:1.14-alpine AS build +ARG GO_VERSION=1.16.7 -RUN apk add --no-cache git build-base && \ - git clone --branch v0.70.0 https://github.com/gohugoio/hugo.git && \ - cd hugo/ && \ - CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=$(git rev-parse --short HEAD)" -o /tmp/hugo . && \ - CGO_ENABLED=1 go build -tags extended -ldflags "-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=$(git rev-parse --short HEAD)" -o /tmp/hugo-extended +FROM amd64/golang:$GO_VERSION-alpine AS hugo_builder + +ARG HUGO_VERSION=0.87.0 + +ADD docker/scripts/build_hugo.sh . + +RUN sh build_hugo.sh $HUGO_VERSION FROM plugins/base:linux-amd64 @@ -16,10 +18,10 @@ LABEL maintainer="Drone.IO Community " \ RUN apk --no-cache add git libc6-compat libstdc++ ENV PLUGIN_HUGO_ARCH=64bit -ENV PLUGIN_HUGO_SHIPPED_VERSION=0.70.0 +ENV PLUGIN_HUGO_SHIPPED_VERSION=$HUGO_VERSION -COPY --from=build /tmp/hugo /bin/hugo -COPY --from=build /tmp/hugo-extended /bin/hugo-extended +COPY --from=hugo_builder /tmp/hugo /bin/hugo +COPY --from=hugo_builder /tmp/hugo-extended /bin/hugo-extended ADD release/linux/amd64/drone-hugo /bin/ ENTRYPOINT ["/bin/drone-hugo"] diff --git a/docker/Dockerfile.linux.arm b/docker/Dockerfile.linux.arm index 0434b8d..1bcb4bc 100644 --- a/docker/Dockerfile.linux.arm +++ b/docker/Dockerfile.linux.arm @@ -1,10 +1,12 @@ -FROM arm32v6/golang:1.14-alpine AS build +ARG GO_VERSION=1.16.7 -RUN apk add --no-cache git build-base && \ - git clone --branch v0.70.0 https://github.com/gohugoio/hugo.git && \ - cd hugo/ && \ - CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=$(git rev-parse --short HEAD)" -o /tmp/hugo . && \ - CGO_ENABLED=1 go build -tags extended -ldflags "-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=$(git rev-parse --short HEAD)" -o /tmp/hugo-extended +FROM arm32v6/golang:$GO_VERSION-alpine AS hugo_builder + +ARG HUGO_VERSION=0.87.0 + +ADD docker/scripts/build_hugo.sh . + +RUN sh build_hugo.sh $HUGO_VERSION FROM plugins/base:linux-arm @@ -16,10 +18,10 @@ LABEL maintainer="Drone.IO Community " \ RUN apk --no-cache add git libc6-compat libstdc++ ENV PLUGIN_HUGO_ARCH=arm -ENV PLUGIN_HUGO_SHIPPED_VERSION=0.70.0 +ENV PLUGIN_HUGO_SHIPPED_VERSION=$HUGO_VERSION -COPY --from=build /tmp/hugo /bin/hugo -COPY --from=build /tmp/hugo-extended /bin/hugo-extended +COPY --from=hugo_builder /tmp/hugo /bin/hugo +COPY --from=hugo_builder /tmp/hugo-extended /bin/hugo-extended ADD release/linux/arm/drone-hugo /bin/ ENTRYPOINT ["/bin/drone-hugo"] diff --git a/docker/Dockerfile.linux.arm64 b/docker/Dockerfile.linux.arm64 index b28dd05..9606c3e 100644 --- a/docker/Dockerfile.linux.arm64 +++ b/docker/Dockerfile.linux.arm64 @@ -1,11 +1,12 @@ -FROM arm64v8/golang:1.14-alpine AS build +ARG GO_VERSION=1.16.7 -RUN apk add --no-cache git build-base && \ - git clone --branch v0.70.0 https://github.com/gohugoio/hugo.git && \ - cd hugo/ && \ - CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=$(git rev-parse --short HEAD)" -o /tmp/hugo . && \ - CGO_ENABLED=1 go build -tags extended -ldflags "-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=$(git rev-parse --short HEAD)" -o /tmp/hugo-extended +FROM arm32v6/golang:$GO_VERSION-alpine AS hugo_builder +ARG HUGO_VERSION=0.87.0 + +ADD docker/scripts/build_hugo.sh . + +RUN sh build_hugo.sh $HUGO_VERSION FROM plugins/base:linux-arm64 LABEL maintainer="Drone.IO Community " \ @@ -16,10 +17,10 @@ LABEL maintainer="Drone.IO Community " \ RUN apk --no-cache add git libc6-compat libstdc++ ENV PLUGIN_HUGO_ARCH=arm64 -ENV PLUGIN_HUGO_SHIPPED_VERSION=0.70.0 +ENV PLUGIN_HUGO_SHIPPED_VERSION=$HUGO_VERSION -COPY --from=build /tmp/hugo /bin/hugo -COPY --from=build /tmp/hugo-extended /bin/hugo-extended +COPY --from=hugo_builder /tmp/hugo /bin/hugo +COPY --from=hugo_builder /tmp/hugo-extended /bin/hugo-extended ADD release/linux/arm64/drone-hugo /bin/ ENTRYPOINT ["/bin/drone-hugo"] diff --git a/docker/scripts/build_hugo.sh b/docker/scripts/build_hugo.sh new file mode 100755 index 0000000..dce3954 --- /dev/null +++ b/docker/scripts/build_hugo.sh @@ -0,0 +1,22 @@ +#! /bin/sh + +set -e + +hugo_version=${HUGO_VERSION:-0.87.0} + +echo "downloading build dependencies..." +apk add -U --no-cache git build-base + +LDFLAGS="-s -w -X github.com/gohugoio/hugo/common/hugo.buildDate=\$(date +%Y-%m-%dT%H:%M:%SZ) -X github.com/gohugoio/hugo/common/hugo.commitHash=\$(git rev-parse --short HEAD)" + +echo "downloading hugo version v$hugo_version..." +git clone --branch "v$hugo_version" https://github.com/gohugoio/hugo.git + +echo "building hugo..." +cd hugo + +CGO_ENABLED=0 go build -ldflags "\"$LDFLAGS\"" -o /tmp/hugo . + +CGO_ENABLED=1 go build -tags extended -ldflags "\"$LDFLAGS\"" -o /tmp/hugo-extended + +echo "done."