diff options
author | Achilleas Pipinellis <axil@gitlab.com> | 2022-08-18 15:34:15 +0300 |
---|---|---|
committer | Achilleas Pipinellis <axil@gitlab.com> | 2022-08-18 15:34:15 +0300 |
commit | a82b8f09f632a7a8cde28d9f793dae54193683c3 (patch) | |
tree | a481b5df8d57a4252c92ee0f6aa1e95e91f0231e | |
parent | 5a2916f6bcdf04f06376213c2e6435f5b44aaae1 (diff) |
Release cut 15.3
-rw-r--r-- | .gitlab-ci.yml | 8 | ||||
-rw-r--r-- | 15.3.Dockerfile | 119 |
2 files changed, 123 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f7531dd5..5e7019fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,10 +22,10 @@ stages: # Pick the remote branch, by default master (see the Rakefile for more info) # variables: - BRANCH_EE: 'master' - BRANCH_OMNIBUS: 'master' - BRANCH_RUNNER: 'main' - BRANCH_CHARTS: 'master' + BRANCH_EE: '15-3-stable-ee' + BRANCH_OMNIBUS: '15-3-stable' + BRANCH_RUNNER: '15-3-stable' + BRANCH_CHARTS: '6-3-stable' BRANCH_OPERATOR: 'master' BUNDLE_PATH__SYSTEM: 'false' GIT_DEPTH: '20' diff --git a/15.3.Dockerfile b/15.3.Dockerfile new file mode 100644 index 00000000..49a3187b --- /dev/null +++ b/15.3.Dockerfile @@ -0,0 +1,119 @@ +# +# Copy this Dockerfile to the root of each branch you want to create an archive +# and rename it to 15.3.Dockerfile, where 15.3 the major.minor GitLab version. +# + +#- Start of minifier stage -# + +# +# Build minifier utility +# Adapted from https://github.com/docker/docker.github.io/blob/publish-tools/Dockerfile.builder +# +FROM golang:1.13-alpine AS minifier +RUN apk add --no-cache git \ + && export GO111MODULE=on \ + && go get -d github.com/tdewolff/minify/v2@latest \ + && go build -v -o /minify github.com/tdewolff/minify/cmd/minify + +#- End of minifier stage -# + +#- Start of builder stage -# + +FROM ruby:2.7.6-alpine3.16 AS builder + +# Copy minifier binary from the minifier stage +COPY --from=minifier /minify /usr/local/bin/minify + +# Set to the version for this archive (must match the branch name) +ENV VER=15.3 +ENV CI_COMMIT_REF_NAME=15.3 + +# Replace the versions to match the stable branches of the upstream projects +ENV BRANCH_EE=15-3-stable-ee +ENV BRANCH_OMNIBUS=15-3-stable +ENV BRANCH_RUNNER=15-3-stable +ENV BRANCH_CHARTS=6-3-stable + +# Set NANOC_ENV to production +ENV NANOC_ENV=production + +# +# Install Nanoc dependencies and tools that +# are needed to build the docs site and run the tests. +# +RUN apk add --no-cache -U \ + bash \ + build-base \ + curl \ + gcompat \ + git \ + gnupg \ + go \ + grep \ + gzip \ + jq \ + libcurl \ + libxslt \ + libxslt-dev \ + nodejs \ + openssl \ + pngquant \ + ruby-dev \ + tar \ + xz \ + xz-dev \ + yarn \ + && echo 'gem: --no-document' >> /etc/gemrc \ + && gem update --silent --system \ + && printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ + && echo "Ruby: $(ruby --version)" \ + && echo "RubyGems: $(gem --version)" \ + && echo "Node.js: $(node --version)" \ + && echo "Yarn: $(yarn --version)" \ + && printf "\n" + +# Build the docs from this branch +COPY . /source/ +WORKDIR /source + +RUN yarn install --frozen-lockfile \ + && yarn cache clean \ + && bundle config set --local deployment true \ + && bundle install --jobs 4 \ + && bundle exec rake setup_git default \ + && bundle exec nanoc compile -VV + +# Move generated HTML to /site +RUN mkdir /site \ + && mv public "/site/${VER}" + +# Do some HTML post-processing on the archive, compress images, and minify assets +RUN /source/scripts/normalize-links.sh /site "${VER}" \ + && /source/scripts/compress_images.sh /site "${VER}" \ + && /source/scripts/minify-assets.sh /site "${VER}" # ATTENTION: This should be the last script to run + +# Make an index.html and 404.html which will redirect / to /${VER}/ +RUN echo "<html><head><title>Redirect for ${VER}</title><meta http-equiv=\"refresh\" content=\"0;url='/${VER}/'\" /></head><body><p>If you are not redirected automatically, click <a href=\"/${VER}/\">here</a>.</p></body></html>" > /site/index.html \ + && echo "<html><head><title>Redirect for ${VER}</title><meta http-equiv=\"refresh\" content=\"0;url='/${VER}/'\" /></head><body><p>If you are not redirected automatically, click <a href=\"/${VER}/\">here</a>.</p></body></html>" > /site/404.html + +#- End of builder build stage -# + +#- Start of NGINX stage -# +# +# Copy the ending HTML files from the previous 'builder' stage and copy them +# to an NGINX Docker image. +# +FROM nginx:alpine + +# Clean out any existing HTML files, and copy the HTML from the builder stage +# to the default location for Nginx. +RUN rm -rf /usr/share/nginx/html/* +COPY --from=builder /site /usr/share/nginx/html + +# Copy the Nginx config +COPY dockerfiles/nginx-overrides.conf /etc/nginx/conf.d/default.conf + +# Start Nginx to serve the archive at / (which will redirect to the version-specific dir) +CMD ["sh", "-c", "echo 'GitLab docs are viewable at: http://0.0.0.0:4000'; exec nginx -g 'daemon off;'"] + +#- End of NGINX stage -# |