From 512a9ab625acdbbf2199bc017c6c76b9c791a256 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Sat, 1 Nov 2025 21:45:48 +0100 Subject: [PATCH] feat: upgrade Hugo version in Netlify and DevContainer file (#1197) * feat: upgrade Netlify Hugo version to 0.152.2 * feat: update to newer Hugo DevContainer file --- .devcontainer/Dockerfile | 53 +++++++++++++++------ .devcontainer/devcontainer.json | 84 ++++++++++++++++++--------------- netlify.toml | 2 +- 3 files changed, 85 insertions(+), 54 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b601136..9704b97 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,31 +1,56 @@ -# Update the NODE_VERSION arg in docker-compose.yml to pick a Node version: 10, 12, 14 -ARG NODE_VERSION=14 -FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${NODE_VERSION} +# syntax=docker/dockerfile:1 +FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04 + +ARG USER=vscode +ARG DEBIAN_FRONTEND=noninteractive +RUN usermod -s /usr/bin/zsh ${USER} # VARIANT can be either 'hugo' for the standard version or 'hugo_extended' for the extended version. -ARG VARIANT=hugo +ARG VARIANT=hugo_extended # VERSION can be either 'latest' or a specific version number ARG VERSION=latest # Download Hugo -RUN apt-get update && apt-get install -y ca-certificates openssl git curl && \ - rm -rf /var/lib/apt/lists/* && \ - case ${VERSION} in \ +RUN case ${VERSION} in \ latest) \ export VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') ;;\ esac && \ echo ${VERSION} && \ - wget -O ${VERSION}.tar.gz https://github.com/gohugoio/hugo/releases/download/v${VERSION}/${VARIANT}_${VERSION}_Linux-64bit.tar.gz && \ + case $(uname -m) in \ + aarch64) \ + export ARCH=ARM64 ;; \ + *) \ + export ARCH=64bit ;; \ + esac && \ + echo ${ARCH} && \ + wget -O ${VERSION}.tar.gz https://github.com/gohugoio/hugo/releases/download/v${VERSION}/${VARIANT}_${VERSION}_Linux-${ARCH}.tar.gz && \ tar xf ${VERSION}.tar.gz && \ mv hugo /usr/bin/hugo # Hugo dev server port EXPOSE 1313 -# [Optional] Uncomment this section to install additional OS packages you may want. -# -# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ -# && apt-get -y install --no-install-recommends -# [Optional] Uncomment if you want to install more global node packages -# RUN sudo -u node npm install -g +USER ${USER} +ARG HOME=/home/${USER} +WORKDIR ${HOME} + +ARG PNPM_HOME=${HOME}/.local/share/pnpm +ENV PATH="${PNPM_HOME}:$PATH" +RUN <> .zshrc +# EOT + +RUN < ${OHMYZSH_HOME}/plugins/git/_hugo +EOT diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4bf8a19..fba096d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,45 +1,51 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.3/containers/hugo { - "name": "Hugo (Community)", - "build": { - "dockerfile": "Dockerfile", - "args": { - // Update VARIANT to pick hugo variant. - // Example variants: hugo, hugo_extended - // Rebuild the container if it already exists to update. - "VARIANT": "hugo_extended", - // Update VERSION to pick a specific hugo version. - // Example versions: latest, 0.73.0, 0,71.1 - // Rebuild the container if it already exists to update. - "VERSION": "latest", - // Update NODE_VERSION to pick the Node.js version: 12, 14 - "NODE_VERSION": "14", - } - }, + "name": "Hugo & pnpm", - // Set *default* container specific settings.json values on container create. - "settings": { - "html.format.templating": true, - }, - - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "bungcip.better-toml", - "davidanson.vscode-markdownlint" - ], + "build": { + "dockerfile": "Dockerfile" + }, - // Use 'forwardPorts' to make a list of ports inside the container available locally. - "forwardPorts": [ - 1313 - ], + // 👇 Features to add to the Dev Container. More info: https://containers.dev/implementors/features. + // "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {} }, - // Use 'postCreateCommand' to run commands after the container is created. - // "postCreateCommand": "uname -a", + // 👇 Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], - // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. - "remoteUser": "node", - "features": { - "golang": "latest" - } + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "html.format.templating": true + }, + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + // https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-front-matter + "eliostruyf.vscode-front-matter", + // https://marketplace.visualstudio.com/items?itemName=rusnasonov.vscode-hugo + "rusnasonov.vscode-hugo", + // https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode + "budparr.language-hugo-vscode", + // https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-hugo-themer + "eliostruyf.vscode-hugo-themer", + // https://marketplace.visualstudio.com/items?itemName=kaellarkin.hugo-shortcode-syntax + "kaellarkin.hugo-shortcode-syntax", + + // "csstools.postcss", + + // "esbenp.prettier-vscode", + // "tamasfe.even-better-toml", + // "naumovs.color-highlight", + // "GitHub.vscode-pull-request-github", + // "eamodio.gitlens", + "davidanson.vscode-markdownlint", + "streetsidesoftware.code-spell-checker" + ] + } + }, + + "remoteUser": "vscode", + + "postCreateCommand": "pnpm install-completion zsh" } diff --git a/netlify.toml b/netlify.toml index b7cd29f..c674fbb 100644 --- a/netlify.toml +++ b/netlify.toml @@ -2,7 +2,7 @@ publish = "exampleSite/public" [build.environment] - HUGO_VERSION = "0.124.0" + HUGO_VERSION = "0.152.2" HUGO_THEME = "repo" [context.production]