From ba56efe32d7708e5a61914d275d241d00e063805 Mon Sep 17 00:00:00 2001 From: Axel Pavageau Date: Wed, 18 Dec 2024 11:43:05 +0100 Subject: [PATCH] chore: automatically fetch the latest versions of Taskfile and Modd to reduce maintenance overhead --- CHANGELOG.md | 8 ++++++++ base_config.yml | 4 ---- chrome/Dockerfile | 5 +---- chrome/config.yml | 3 --- dind/Dockerfile | 3 +-- dind/config.yml | 1 - golang/1.21/Dockerfile | 15 ++++++++------- golang/1.22/Dockerfile | 15 ++++++++------- golang/1.23/Dockerfile | 15 ++++++++------- golang/config.yml | 3 --- node/Dockerfile | 19 ++++++++++--------- node/config.yml | 6 ------ php/8.1/Dockerfile | 8 +++++--- php/8.2/Dockerfile | 8 +++++--- php/8.3/Dockerfile | 8 +++++--- php/config.yml | 1 - 16 files changed, 59 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0a0dae1b..26af90184 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ Versions ======== +2024-12-31 +---------- +* Chrome: using the latest versions of Taskfile and Modd +* DIND: using the latest versions of Taskfile and Modd +* Golang: using the latest versions of Taskfile and Modd +* Node: using the latest versions of Taskfile and Modd +* PHP: using the latest versions of Taskfile and Modd + 2024-11-30 ---------- * AWS: fixing download path for kubectl, and adding a check. We'll now use the latest version automatically diff --git a/base_config.yml b/base_config.yml index e2f1adb91..3ecca02b5 100644 --- a/base_config.yml +++ b/base_config.yml @@ -3,9 +3,5 @@ docker_hub_namespace: ekino DOCKER_SOCK_PATH: unix://var/run/docker.sock DOCKER_TIMEOUT: 600 -# Common build_vars -MODD_VERSION: &MODD_VERSION 0.5 -TASKFILE_VERSION: &TASKFILE_VERSION 3.2.2 - base_platforms: &base_platforms - linux/amd64 diff --git a/chrome/Dockerfile b/chrome/Dockerfile index 37f3faf95..f4a428e8e 100644 --- a/chrome/Dockerfile +++ b/chrome/Dockerfile @@ -1,9 +1,6 @@ FROM node:10-alpine LABEL maintainer="opensource@ekino.com" -ARG MODD_VERSION -ARG TASKFILE_VERSION - # Tell Puppeteer to skip installing Chrome. We'll be using the installed package. ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true @@ -21,7 +18,7 @@ RUN apk update && apk upgrade && \ yarn add puppeteer@1.13.0 && \ apk add --update curl git grep make ncurses tzdata && \ echo "Install Taskfile" && \ - curl -sSL https://taskfile.dev/install.sh | sh -s v${TASKFILE_VERSION} && \ + sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d && \ echo "Done Install Taskfile" && \ echo "Adding an up to date mime-types definition file" && \ curl -sSL https://salsa.debian.org/debian/mime-support/raw/master/mime.types -o /etc/mime.types && \ diff --git a/chrome/config.yml b/chrome/config.yml index 2fcdb34da..31d930737 100644 --- a/chrome/config.yml +++ b/chrome/config.yml @@ -3,9 +3,6 @@ versions: platforms: - linux/amd64 - linux/arm64 - build_args: - MODD_VERSION: *MODD_VERSION - TASKFILE_VERSION: *TASKFILE_VERSION test_config: cmd: - google-chrome --no-sandbox --version diff --git a/dind/Dockerfile b/dind/Dockerfile index 50383dfb0..a6a95aebb 100644 --- a/dind/Dockerfile +++ b/dind/Dockerfile @@ -1,6 +1,5 @@ FROM docker:20.10.24-dind as base LABEL maintainer="Rémi Marseille " -ARG TASKFILE_VERSION ARG TRIVY_VERSION FROM base as base-amd64 @@ -32,7 +31,7 @@ RUN echo "Install AWS & Azure CLIs" && \ FROM base-$TARGETARCH RUN echo "Install Taskfile" && \ - curl -sSL https://taskfile.dev/install.sh | sh -s v${TASKFILE_VERSION} && \ + sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d && \ echo "Done Install Taskfile" && \ echo "Install Docker Compose" && \ apk add --update docker-compose && \ diff --git a/dind/config.yml b/dind/config.yml index deb559df5..bf6399875 100644 --- a/dind/config.yml +++ b/dind/config.yml @@ -5,7 +5,6 @@ versions: - linux/arm64 build_args: TRIVY_VERSION: "0.56.2" - TASKFILE_VERSION: *TASKFILE_VERSION test_config: cmd: - aws --version diff --git a/golang/1.21/Dockerfile b/golang/1.21/Dockerfile index 34fa9d313..df0e056d3 100644 --- a/golang/1.21/Dockerfile +++ b/golang/1.21/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.21.13 as base +FROM golang:1.21.13 AS base LABEL maintainer="opensource@ekino.com" ARG GITLEAKS_VERSION ARG GOLANGCILINT_VERSION @@ -6,9 +6,8 @@ ARG GOMODUPGRADE_VERSION ARG GOSWAGGER_VERSION ARG MIGRATE_VERSION ARG MOCKGEN_VERSION -ARG MODD_VERSION -FROM base as base-amd64 +FROM base AS base-amd64 ARG AWSCLI_ARCH="linux-x86_64" ARG GITLEAKS_ARCH="linux_x64" ARG GOLANGCILINT_ARCH="linux-amd64" @@ -18,7 +17,7 @@ ARG GOMIGRATE_ARCH="linux-amd64" ARG MOCKGEN_ARCH="linux_amd64" ARG MODD_ARCH="linux64" -FROM base as base-arm64 +FROM base AS base-arm64 ARG AWSCLI_ARCH="linux-aarch64" ARG GITLEAKS_ARCH="linux_arm64" ARG GOLANGCILINT_ARCH="linux-arm64" @@ -65,9 +64,11 @@ RUN apt-get update -q && \ mv mock_${MOCKGEN_VERSION}_${MOCKGEN_ARCH}/mockgen /usr/local/bin && \ rm -rf mock* && \ # Install modd - wget -q https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ - tar -xzf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ - rm -rf modd-${MODD_VERSION}-${MODD_ARCH}* && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ # Install go tools go install golang.org/x/tools/cmd/goimports@v0.24.0 && \ go install github.com/boumenot/gocover-cobertura@latest diff --git a/golang/1.22/Dockerfile b/golang/1.22/Dockerfile index e5eb31d6c..1f49f4577 100644 --- a/golang/1.22/Dockerfile +++ b/golang/1.22/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22.10 as base +FROM golang:1.22.10 AS base LABEL maintainer="opensource@ekino.com" ARG GITLEAKS_VERSION ARG GOLANGCILINT_VERSION @@ -6,9 +6,8 @@ ARG GOMODUPGRADE_VERSION ARG GOSWAGGER_VERSION ARG MIGRATE_VERSION ARG MOCKGEN_VERSION -ARG MODD_VERSION -FROM base as base-amd64 +FROM base AS base-amd64 ARG AWSCLI_ARCH="linux-x86_64" ARG GITLEAKS_ARCH="linux_x64" ARG GOLANGCILINT_ARCH="linux-amd64" @@ -18,7 +17,7 @@ ARG GOMIGRATE_ARCH="linux-amd64" ARG MOCKGEN_ARCH="linux_amd64" ARG MODD_ARCH="linux64" -FROM base as base-arm64 +FROM base AS base-arm64 ARG AWSCLI_ARCH="linux-aarch64" ARG GITLEAKS_ARCH="linux_arm64" ARG GOLANGCILINT_ARCH="linux-arm64" @@ -66,9 +65,11 @@ RUN apt-get update -q && \ mv mock_${MOCKGEN_VERSION}_${MOCKGEN_ARCH}/mockgen /usr/local/bin && \ rm -rf mock* && \ # Install modd - wget -q https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ - tar -xzf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ - rm -rf modd-${MODD_VERSION}-${MODD_ARCH}* && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ # Install go tools go install golang.org/x/tools/cmd/goimports@latest && \ go install github.com/boumenot/gocover-cobertura@latest diff --git a/golang/1.23/Dockerfile b/golang/1.23/Dockerfile index 8146f68d6..43f8cd22e 100644 --- a/golang/1.23/Dockerfile +++ b/golang/1.23/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23.4 as base +FROM golang:1.23.4 AS base LABEL maintainer="opensource@ekino.com" ARG GITLEAKS_VERSION ARG GOLANGCILINT_VERSION @@ -6,9 +6,8 @@ ARG GOMODUPGRADE_VERSION ARG GOSWAGGER_VERSION ARG MIGRATE_VERSION ARG MOCKGEN_VERSION -ARG MODD_VERSION -FROM base as base-amd64 +FROM base AS base-amd64 ARG AWSCLI_ARCH="linux-x86_64" ARG GITLEAKS_ARCH="linux_x64" ARG GOLANGCILINT_ARCH="linux-amd64" @@ -18,7 +17,7 @@ ARG GOMIGRATE_ARCH="linux-amd64" ARG MOCKGEN_ARCH="linux_amd64" ARG MODD_ARCH="linux64" -FROM base as base-arm64 +FROM base AS base-arm64 ARG AWSCLI_ARCH="linux-aarch64" ARG GITLEAKS_ARCH="linux_arm64" ARG GOLANGCILINT_ARCH="linux-arm64" @@ -66,9 +65,11 @@ RUN apt-get update -q && \ mv mock_${MOCKGEN_VERSION}_${MOCKGEN_ARCH}/mockgen /usr/local/bin && \ rm -rf mock* && \ # Install modd - wget -q https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ - tar -xzf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ - rm -rf modd-${MODD_VERSION}-${MODD_ARCH}* && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ # Install go tools go install golang.org/x/tools/cmd/goimports@latest && \ go install github.com/boumenot/gocover-cobertura@latest diff --git a/golang/config.yml b/golang/config.yml index 24fb59a02..762fd6625 100644 --- a/golang/config.yml +++ b/golang/config.yml @@ -23,7 +23,6 @@ versions: GOSWAGGER_VERSION: 0.30.5 MIGRATE_VERSION: 4.17.0 MOCKGEN_VERSION: 1.6.0 - MODD_VERSION: 0.8 "1.22": platforms: - linux/amd64 @@ -36,7 +35,6 @@ versions: GOSWAGGER_VERSION: 0.30.5 MIGRATE_VERSION: 4.17.0 MOCKGEN_VERSION: 1.6.0 - MODD_VERSION: 0.8 "1.23": platforms: - linux/amd64 @@ -49,4 +47,3 @@ versions: GOSWAGGER_VERSION: 0.30.5 MIGRATE_VERSION: 4.17.0 MOCKGEN_VERSION: 1.6.0 - MODD_VERSION: 0.8 diff --git a/node/Dockerfile b/node/Dockerfile index d40bcabcd..88427e555 100644 --- a/node/Dockerfile +++ b/node/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:11.11-slim as base +FROM debian:11.11-slim AS base LABEL maintainer="opensource@ekino.com" ENV DEBIAN_FRONTEND=noninteractive \ LANG=C.UTF-8 \ @@ -7,14 +7,12 @@ ENV DEBIAN_FRONTEND=noninteractive \ ARG NODE_VERSION ARG NPM_VERSION ARG NVM_VERSION -ARG MODD_VERSION -ARG TASKFILE_VERSION -FROM base as base-amd64 +FROM base AS base-amd64 ARG MODD_ARCH="linux64" ARG AWSCLI_ARCH="linux-x86_64" -FROM base as base-arm64 +FROM base AS base-arm64 ARG MODD_ARCH="linuxARM" ARG AWSCLI_ARCH="linux-aarch64" @@ -25,13 +23,16 @@ RUN echo "Starting ..." && \ libmcrypt-dev libreadline-dev ruby-full openssh-client ocaml libelf-dev bzip2 gcc g++ jq && \ gem install rb-inotify:'~> 0.9.10' sass --verbose && \ gem install scss_lint:'~> 0.57.1' --verbose && \ - echo "Done base install!" && \ + echo "Done base install!" && \ echo "Install Modd" && \ - curl -sSL https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz | tar -xOvzf - modd-${MODD_VERSION}-${MODD_ARCH}/modd > /usr/bin/modd && \ - chmod 755 /usr/bin/modd && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ echo "Done Install Modd" && \ echo "Install Taskfile" && \ - curl -sSL https://taskfile.dev/install.sh | sh -s v${TASKFILE_VERSION} && \ + sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d && \ echo "Done Install Taskfile" && \ echo "Starting Javascript..." && \ git clone https://github.com/creationix/nvm.git /root/.nvm && cd /root/.nvm && git checkout v${NVM_VERSION} && \ diff --git a/node/config.yml b/node/config.yml index f93461c5a..e541e944f 100644 --- a/node/config.yml +++ b/node/config.yml @@ -17,8 +17,6 @@ versions: NODE_VERSION: 18.20.4 NPM_VERSION: 10.9.0 NVM_VERSION: 0.40.1 - MODD_VERSION: *MODD_VERSION - TASKFILE_VERSION: *TASKFILE_VERSION test_config: *test_config "20": platforms: @@ -28,8 +26,6 @@ versions: NODE_VERSION: 20.18.0 NPM_VERSION: 10.9.0 NVM_VERSION: 0.40.1 - MODD_VERSION: *MODD_VERSION - TASKFILE_VERSION: *TASKFILE_VERSION test_config: *test_config "22": platforms: @@ -39,6 +35,4 @@ versions: NODE_VERSION: 22.11.0 NPM_VERSION: 10.9.0 NVM_VERSION: 0.40.1 - MODD_VERSION: *MODD_VERSION - TASKFILE_VERSION: *TASKFILE_VERSION test_config: *test_config diff --git a/php/8.1/Dockerfile b/php/8.1/Dockerfile index b27ca969a..2454e429f 100644 --- a/php/8.1/Dockerfile +++ b/php/8.1/Dockerfile @@ -4,7 +4,6 @@ LABEL maintainer="Rémi Marseille " ARG APCU_VERSION ARG COMPOSER_VERSION ARG MEMCACHED_VERSION -ARG MODD_VERSION ARG PHP_CS_FIXER_VERSION ARG REDIS_VERSION ARG SSH2_VERSION @@ -32,8 +31,11 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \ libmcrypt-dev libmemcached-dev libpng-dev libssh2-dev libxml2-dev libxslt-dev libzip-dev linux-headers make \ mysql-client openssh-client patch postgresql-client postgresql-dev rsync tzdata && \ # Install Modd" - curl -sSL https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz | tar -xOvzf - modd-${MODD_VERSION}-${MODD_ARCH}/modd > /usr/bin/modd && \ - chmod 755 /usr/bin/modd && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ echo "Starting PHP with $version" && \ docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \ CFLAGS_PREVIOUS=$CFLAGS && \ diff --git a/php/8.2/Dockerfile b/php/8.2/Dockerfile index b6c16069b..878bd3f70 100644 --- a/php/8.2/Dockerfile +++ b/php/8.2/Dockerfile @@ -4,7 +4,6 @@ LABEL maintainer="Rémi Marseille " ARG APCU_VERSION ARG COMPOSER_VERSION ARG MEMCACHED_VERSION -ARG MODD_VERSION ARG PHP_CS_FIXER_VERSION ARG REDIS_VERSION ARG SSH2_VERSION @@ -32,8 +31,11 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \ libmcrypt-dev libmemcached-dev libpng-dev libssh2-dev libxml2-dev libxslt-dev libzip-dev linux-headers make \ mysql-client openssh-client patch postgresql-client postgresql-dev rsync tzdata && \ # Install Modd" - curl -sSL https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz | tar -xOvzf - modd-${MODD_VERSION}-${MODD_ARCH}/modd > /usr/bin/modd && \ - chmod 755 /usr/bin/modd && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ echo "Starting PHP with $version" && \ docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \ CFLAGS_PREVIOUS=$CFLAGS && \ diff --git a/php/8.3/Dockerfile b/php/8.3/Dockerfile index da94ab74b..d731b879a 100644 --- a/php/8.3/Dockerfile +++ b/php/8.3/Dockerfile @@ -4,7 +4,6 @@ LABEL maintainer="Rémi Marseille " ARG APCU_VERSION ARG COMPOSER_VERSION ARG MEMCACHED_VERSION -ARG MODD_VERSION ARG PHP_CS_FIXER_VERSION ARG REDIS_VERSION ARG SSH2_VERSION @@ -31,8 +30,11 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \ libmcrypt-dev libmemcached-dev libpng-dev libssh2-dev libxml2-dev libxslt-dev libzip-dev linux-headers make \ mysql-client openssh-client patch postgresql-client postgresql-dev rsync tzdata && \ # Install Modd" - curl -sSL https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz | tar -xOvzf - modd-${MODD_VERSION}-${MODD_ARCH}/modd > /usr/bin/modd && \ - chmod 755 /usr/bin/modd && \ + MODD_VERSION=$(curl -s https://api.github.com/repos/cortesi/modd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') && \ + curl -LO https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + tar -xf modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ + mv modd-${MODD_VERSION}-${MODD_ARCH}/modd /usr/local/bin && \ + rm modd-${MODD_VERSION}-${MODD_ARCH}.tgz && \ echo "Starting PHP with $version" && \ docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \ CFLAGS_PREVIOUS=$CFLAGS && \ diff --git a/php/config.yml b/php/config.yml index ab49a609b..87536a638 100644 --- a/php/config.yml +++ b/php/config.yml @@ -15,7 +15,6 @@ build_args: &build_args APCU_VERSION: 5.1.22 COMPOSER_VERSION: 2.7.2 MEMCACHED_VERSION: 3.2.0 - MODD_VERSION: *MODD_VERSION PHP_CS_FIXER_VERSION: 3.41.1 REDIS_VERSION: 5.3.7 XDEBUG_VERSION: 3.3.1