From 66e91d11956b41faff309682b2cfeda1ea133801 Mon Sep 17 00:00:00 2001 From: Liam Date: Thu, 4 Jun 2026 14:08:31 -0400 Subject: [PATCH] Add 1.20 release --- .github/workflows/elixir.yaml | 9 +++++++++ 1.20/Dockerfile | 20 ++++++++++++++++++++ 1.20/alpine/Dockerfile | 27 +++++++++++++++++++++++++++ 1.20/otp-27-alpine/Dockerfile | 27 +++++++++++++++++++++++++++ 1.20/otp-27-slim/Dockerfile | 29 +++++++++++++++++++++++++++++ 1.20/otp-27/Dockerfile | 20 ++++++++++++++++++++ 1.20/otp-28-alpine/Dockerfile | 27 +++++++++++++++++++++++++++ 1.20/otp-28-slim/Dockerfile | 29 +++++++++++++++++++++++++++++ 1.20/otp-28/Dockerfile | 20 ++++++++++++++++++++ 1.20/slim/Dockerfile | 29 +++++++++++++++++++++++++++++ generate-stackbrew-library.sh | 6 +++--- 11 files changed, 240 insertions(+), 3 deletions(-) create mode 100644 1.20/Dockerfile create mode 100644 1.20/alpine/Dockerfile create mode 100644 1.20/otp-27-alpine/Dockerfile create mode 100644 1.20/otp-27-slim/Dockerfile create mode 100644 1.20/otp-27/Dockerfile create mode 100644 1.20/otp-28-alpine/Dockerfile create mode 100644 1.20/otp-28-slim/Dockerfile create mode 100644 1.20/otp-28/Dockerfile create mode 100644 1.20/slim/Dockerfile diff --git a/.github/workflows/elixir.yaml b/.github/workflows/elixir.yaml index f9e4a95..2007b30 100644 --- a/.github/workflows/elixir.yaml +++ b/.github/workflows/elixir.yaml @@ -9,6 +9,15 @@ jobs: matrix: elixir: [ + "DIR=1.20", + "DIR=1.20 VARIANT=slim", + "DIR=1.20 VARIANT=alpine", + "DIR=1.20 VARIANT=otp-28", + "DIR=1.20 VARIANT=otp-28-slim", + "DIR=1.20 VARIANT=otp-28-alpine", + "DIR=1.20 VARIANT=otp-27", + "DIR=1.20 VARIANT=otp-27-slim", + "DIR=1.20 VARIANT=otp-27-alpine", "DIR=1.19", "DIR=1.19 VARIANT=slim", "DIR=1.19 VARIANT=alpine", diff --git a/1.20/Dockerfile b/1.20/Dockerfile new file mode 100644 index 0000000..8a54b4e --- /dev/null +++ b/1.20/Dockerfile @@ -0,0 +1,20 @@ +FROM erlang:29 + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete + +CMD ["iex"] diff --git a/1.20/alpine/Dockerfile b/1.20/alpine/Dockerfile new file mode 100644 index 0000000..4ebdf2a --- /dev/null +++ b/1.20/alpine/Dockerfile @@ -0,0 +1,27 @@ +FROM erlang:29-alpine + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && buildDeps=' \ + ca-certificates \ + curl \ + make \ + ' \ + && apk add --no-cache --virtual .build-deps $buildDeps \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete \ + && apk del .build-deps + +CMD ["iex"] diff --git a/1.20/otp-27-alpine/Dockerfile b/1.20/otp-27-alpine/Dockerfile new file mode 100644 index 0000000..807a91b --- /dev/null +++ b/1.20/otp-27-alpine/Dockerfile @@ -0,0 +1,27 @@ +FROM erlang:27-alpine + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && buildDeps=' \ + ca-certificates \ + curl \ + make \ + ' \ + && apk add --no-cache --virtual .build-deps $buildDeps \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete \ + && apk del .build-deps + +CMD ["iex"] diff --git a/1.20/otp-27-slim/Dockerfile b/1.20/otp-27-slim/Dockerfile new file mode 100644 index 0000000..23eccfb --- /dev/null +++ b/1.20/otp-27-slim/Dockerfile @@ -0,0 +1,29 @@ +FROM erlang:27-slim + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && buildDeps=' \ + ca-certificates \ + curl \ + make \ + ' \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete \ + && apt-get purge -y --auto-remove $buildDeps \ + && rm -rf /var/lib/apt/lists/* + +CMD ["iex"] diff --git a/1.20/otp-27/Dockerfile b/1.20/otp-27/Dockerfile new file mode 100644 index 0000000..0552fe6 --- /dev/null +++ b/1.20/otp-27/Dockerfile @@ -0,0 +1,20 @@ +FROM erlang:27 + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete + +CMD ["iex"] diff --git a/1.20/otp-28-alpine/Dockerfile b/1.20/otp-28-alpine/Dockerfile new file mode 100644 index 0000000..f531cc2 --- /dev/null +++ b/1.20/otp-28-alpine/Dockerfile @@ -0,0 +1,27 @@ +FROM erlang:28-alpine + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && buildDeps=' \ + ca-certificates \ + curl \ + make \ + ' \ + && apk add --no-cache --virtual .build-deps $buildDeps \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete \ + && apk del .build-deps + +CMD ["iex"] diff --git a/1.20/otp-28-slim/Dockerfile b/1.20/otp-28-slim/Dockerfile new file mode 100644 index 0000000..d7b32fa --- /dev/null +++ b/1.20/otp-28-slim/Dockerfile @@ -0,0 +1,29 @@ +FROM erlang:28-slim + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && buildDeps=' \ + ca-certificates \ + curl \ + make \ + ' \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete \ + && apt-get purge -y --auto-remove $buildDeps \ + && rm -rf /var/lib/apt/lists/* + +CMD ["iex"] diff --git a/1.20/otp-28/Dockerfile b/1.20/otp-28/Dockerfile new file mode 100644 index 0000000..cf9ae7c --- /dev/null +++ b/1.20/otp-28/Dockerfile @@ -0,0 +1,20 @@ +FROM erlang:28 + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete + +CMD ["iex"] diff --git a/1.20/slim/Dockerfile b/1.20/slim/Dockerfile new file mode 100644 index 0000000..1b16f43 --- /dev/null +++ b/1.20/slim/Dockerfile @@ -0,0 +1,29 @@ +FROM erlang:29-slim + +# elixir expects utf8. +ENV ELIXIR_VERSION="v1.20.0" \ + LANG=C.UTF-8 + +RUN set -xe \ + && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ + && ELIXIR_DOWNLOAD_SHA256="70f6cb721f238fa5dd33eb29aa5b19e5ccc3807e41cd5f9b65d5c715b669438c" \ + && buildDeps=' \ + ca-certificates \ + curl \ + make \ + ' \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ + && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/local/src/elixir \ + && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ + && rm elixir-src.tar.gz \ + && cd /usr/local/src/elixir \ + && make install clean \ + && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \ + && find /usr/local/src/elixir/ -type d -depth -empty -delete \ + && apt-get purge -y --auto-remove $buildDeps \ + && rm -rf /var/lib/apt/lists/* + +CMD ["iex"] diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index a06b34f..665cb04 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -3,14 +3,14 @@ set -eu declare -a -r versions=( # https://github.com/elixir-lang/elixir/blob/main/SECURITY.md#supported-versions + 1.20 1.19 1.18 1.17 1.16 - 1.15 ) declare -A -r aliases=( - [1.19]='latest' + [1.20]='latest' ) # get the most recent commit which modified any of "$@" @@ -88,7 +88,7 @@ for version in "${versions[@]}"; do done versionAliases+=( $version ${aliases[$version]:-} ) - for variant in '' slim alpine otp-23-slim otp-{24,25,26,27,28}{,-alpine,-slim}; do + for variant in '' slim alpine otp-23-slim otp-{24,25,26,27,28,29}{,-alpine,-slim}; do dir="$version${variant:+/$variant}" [ -f "$dir/Dockerfile" ] || continue