From e5c740ecb7aac398fab0985b362627508f93e694 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 01/10] chore: Update devcontainer to Debian 13 and use PF docker-out feature --- .devcontainer/Dockerfile | 2 +- .devcontainer/devcontainer.json | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index adb8dfd..ce7e2d7 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM mcr.microsoft.com/devcontainers/base:1.0.20-bookworm +FROM mcr.microsoft.com/devcontainers/base:2.1.9-trixie diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 86816b4..513b818 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,14 +1,8 @@ { "name": "PF dev-feat DEV", "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, - "runArgs": [ - "--add-host=host.docker.internal:host-gateway" - ], "containerEnv": { "GOMODCACHE": "${containerWorkspaceFolder}/.go_cache" }, @@ -16,7 +10,11 @@ "ghcr.io/postfinance/devcontainer-features/go:1.0.0": { "version": "1.25.9" }, - "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}, + "ghcr.io/postfinance/devcontainer-features/docker-out:1.0.0": { + "version": "29.6.2", + "composeVersion": "5.3.1", + "buildxVersion": "0.35.0" + }, "ghcr.io/devcontainers-extra/features/devcontainers-cli:1": {} }, "customizations": { @@ -26,4 +24,4 @@ ] } } -} \ No newline at end of file +} From ec19afaa7770c27e6a54bce5db98a3c57b8f46c9 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 02/10] docs(playwright-deps): Suggest to use Playwright server mode with host browser --- features/src/playwright-deps/NOTES.md | 20 ++++++++++++++++++++ features/src/playwright-deps/README.md | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/features/src/playwright-deps/NOTES.md b/features/src/playwright-deps/NOTES.md index 05dba33..3bcf5fb 100644 --- a/features/src/playwright-deps/NOTES.md +++ b/features/src/playwright-deps/NOTES.md @@ -26,3 +26,23 @@ Also don't forget to add `.ms-playwright` to your `.gitignore` file. ### Download URL from within Playwright To change the downloads that Playwright does to a custom remote, you can adjust the `PLAYWRIGHT_DOWNLOAD_HOST` environment variable to eg. `https://mycompany.com/artifactory/playwright-remote/`. You might also want to increase the `PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT` to something like `300000`. + +### Poor performance of `playwright test --ui` + +If you find the UI launched with `playwright test --ui` too slow, you can run +Playwright in server mode and connect from your host browser. + +For VS Code, you only need to launch Playwright in server mode: + +```sh +npx playwright test --ui-host 0.0.0.0 --ui-port 8085 +``` + +If you are using the devcontainer CLI to build the container: + +1. In your `devcontainer.json`, add a port forward: + ```json + "appPort": [ "32222:8085" ] + ``` +2. Launch Playwright in server mode: `npx playwright test --ui-host 0.0.0.0 --ui-port 8085` +3. Access Playwright from your host browser: diff --git a/features/src/playwright-deps/README.md b/features/src/playwright-deps/README.md index 4911d8a..e6708f3 100755 --- a/features/src/playwright-deps/README.md +++ b/features/src/playwright-deps/README.md @@ -50,3 +50,23 @@ Also don't forget to add `.ms-playwright` to your `.gitignore` file. ### Download URL from within Playwright To change the downloads that Playwright does to a custom remote, you can adjust the `PLAYWRIGHT_DOWNLOAD_HOST` environment variable to eg. `https://mycompany.com/artifactory/playwright-remote/`. You might also want to increase the `PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT` to something like `300000`. + +### Poor performance of `playwright test --ui` + +If you find the UI launched with `playwright test --ui` too slow, you can run +Playwright in server mode and connect from your host browser. + +For VS Code, you only need to launch Playwright in server mode: + +```sh +npx playwright test --ui-host 0.0.0.0 --ui-port 8085 +``` + +If you are using the devcontainer CLI to build the container: + +1. In your `devcontainer.json`, add a port forward: + ```json + "appPort": [ "32222:8085" ] + ``` +2. Launch Playwright in server mode: `npx playwright test --ui-host 0.0.0.0 --ui-port 8085` +3. Access Playwright from your host browser: From c3b1e0e33f6847a99c417e6f35f6339f6441fa11 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 03/10] chore(playwright-deps): Sync list of browser dependencies with upstream --- features/src/playwright-deps/installer.go | 121 ++++++++++++++++++ .../test/playwright-deps/test-images.json | 6 +- 2 files changed, 125 insertions(+), 2 deletions(-) diff --git a/features/src/playwright-deps/installer.go b/features/src/playwright-deps/installer.go index 7314bac..e8ff7ef 100644 --- a/features/src/playwright-deps/installer.go +++ b/features/src/playwright-deps/installer.go @@ -353,6 +353,7 @@ var dependencies = map[string]map[string][]string{ "firefox": []string{ "libasound2t64", "libatk1.0-0t64", + "libavcodec60", "libcairo-gobject2", "libcairo2", "libdbus-1-3", @@ -431,6 +432,125 @@ var dependencies = map[string]map[string][]string{ "libavif16", }, }, + "ubuntu26": { + "tools": []string{ + "xvfb", + "fonts-noto-color-emoji", + "fonts-unifont", + "libfontconfig1", + "libfreetype6", + "xfonts-cyrillic", + "xfonts-scalable", + "fonts-liberation", + "fonts-ipafont-gothic", + "fonts-wqy-zenhei", + "fonts-tlwg-loma-otf", + "fonts-freefont-ttf", + }, + "chromium": []string{ + "libasound2t64", + "libatk-bridge2.0-0t64", + "libatk1.0-0t64", + "libatspi2.0-0t64", + "libcairo2", + "libcups2t64", + "libdbus-1-3", + "libdrm2", + "libgbm1", + "libglib2.0-0t64", + "libnspr4", + "libnss3", + "libpango-1.0-0", + "libx11-6", + "libxcb1", + "libxcomposite1", + "libxdamage1", + "libxext6", + "libxfixes3", + "libxkbcommon0", + "libxrandr2", + }, + "firefox": []string{ + "libasound2t64", + "libatk1.0-0t64", + "libavcodec62", + "libcairo-gobject2", + "libcairo2", + "libdbus-1-3", + "libfontconfig1", + "libfreetype6", + "libgdk-pixbuf-2.0-0", + "libglib2.0-0t64", + "libgtk-3-0t64", + "libpango-1.0-0", + "libpangocairo-1.0-0", + "libx11-6", + "libx11-xcb1", + "libxcb-shm0", + "libxcb1", + "libxcomposite1", + "libxcursor1", + "libxdamage1", + "libxext6", + "libxfixes3", + "libxi6", + "libxrandr2", + "libxrender1", + }, + "webkit": []string{ + "gstreamer1.0-libav", + "gstreamer1.0-plugins-bad", + "gstreamer1.0-plugins-base", + "gstreamer1.0-plugins-good", + "libicu78", + "libatomic1", + "libatk-bridge2.0-0t64", + "libatk1.0-0t64", + "libcairo-gobject2", + "libcairo2", + "libdbus-1-3", + "libdrm2", + "libenchant-2-2", + "libepoxy0", + "libevent-2.1-7t64", + "libflite1", + "libfontconfig1", + "libfreetype6", + "libgbm1", + "libgdk-pixbuf-2.0-0", + "libgles2", + "libglib2.0-0t64", + "libgstreamer-gl1.0-0", + "libgstreamer-plugins-bad1.0-0", + "libgstreamer-plugins-base1.0-0", + "libgstreamer1.0-0", + "libgtk-4-1", + "libharfbuzz-icu0", + "libharfbuzz0b", + "libhyphen0", + "libjpeg-turbo8", + "liblcms2-2", + "libmanette-0.2-0", + "libopus0", + "libpango-1.0-0", + "libpangocairo-1.0-0", + "libpng16-16t64", + "libsecret-1-0", + "libvpx12", + "libwayland-client0", + "libwayland-egl1", + "libwayland-server0", + "libwebp7", + "libwebpdemux2", + "libwoff1", + "libx11-6", + "libxkbcommon0", + "libxml2-16", + "libxslt1.1", + "libx264-165", + "libavif16", + }, + }, "debian11": { "tools": []string{ @@ -723,6 +843,7 @@ var dependencies = map[string]map[string][]string{ "firefox": []string{ "libasound2", "libatk1.0-0t64", + "libavcodec61", "libcairo-gobject2", "libcairo2", "libdbus-1-3", diff --git a/features/test/playwright-deps/test-images.json b/features/test/playwright-deps/test-images.json index baaeb21..44dee96 100644 --- a/features/test/playwright-deps/test-images.json +++ b/features/test/playwright-deps/test-images.json @@ -1,5 +1,7 @@ [ "mcr.microsoft.com/devcontainers/base:debian-11", "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian-13", + "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu-26.04" +] From 7c9b00d8eaec23139af0e2963a4a45737d04df76 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 04/10] chore(playwright-deps): Follow upstream and drop Debian 11 support --- features/src/playwright-deps/README.md | 2 +- .../playwright-deps/devcontainer-feature.json | 4 +- features/src/playwright-deps/installer.go | 126 ------------------ .../test/playwright-deps/test-images.json | 1 - 4 files changed, 3 insertions(+), 130 deletions(-) diff --git a/features/src/playwright-deps/README.md b/features/src/playwright-deps/README.md index e6708f3..8cfa26d 100755 --- a/features/src/playwright-deps/README.md +++ b/features/src/playwright-deps/README.md @@ -6,7 +6,7 @@ Installs all dependencies required to run Playwright. ```json "features": { - "ghcr.io/postfinance/devcontainer-features/playwright-deps:1.0.0": { + "ghcr.io/postfinance/devcontainer-features/playwright-deps:2.0.0": { "installChromiumDeps": true, "installFirefoxDeps": true, "installWebkitDeps": true diff --git a/features/src/playwright-deps/devcontainer-feature.json b/features/src/playwright-deps/devcontainer-feature.json index b831ce5..292ea87 100644 --- a/features/src/playwright-deps/devcontainer-feature.json +++ b/features/src/playwright-deps/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "playwright-deps", - "version": "1.0.0", + "version": "2.0.0", "name": "Playwright Dependencies", "description": "Installs all dependencies required to run Playwright.", "options": { @@ -23,4 +23,4 @@ "containerEnv": { "PLAYWRIGHT_HTML_HOST": "0.0.0.0" } -} \ No newline at end of file +} diff --git a/features/src/playwright-deps/installer.go b/features/src/playwright-deps/installer.go index e8ff7ef..bc01076 100644 --- a/features/src/playwright-deps/installer.go +++ b/features/src/playwright-deps/installer.go @@ -552,132 +552,6 @@ var dependencies = map[string]map[string][]string{ }, }, - "debian11": { - "tools": []string{ - "xvfb", - "fonts-noto-color-emoji", - "fonts-unifont", - "libfontconfig1", - "libfreetype6", - "xfonts-cyrillic", - "xfonts-scalable", - "fonts-liberation", - "fonts-ipafont-gothic", - "fonts-wqy-zenhei", - "fonts-tlwg-loma-otf", - "fonts-freefont-ttf", - }, - "chromium": []string{ - "libasound2", - "libatk-bridge2.0-0", - "libatk1.0-0", - "libatspi2.0-0", - "libcairo2", - "libcups2", - "libdbus-1-3", - "libdrm2", - "libgbm1", - "libglib2.0-0", - "libnspr4", - "libnss3", - "libpango-1.0-0", - "libwayland-client0", - "libx11-6", - "libxcb1", - "libxcomposite1", - "libxdamage1", - "libxext6", - "libxfixes3", - "libxkbcommon0", - "libxrandr2", - }, - "firefox": []string{ - "libasound2", - "libatk1.0-0", - "libcairo-gobject2", - "libcairo2", - "libdbus-1-3", - "libdbus-glib-1-2", - "libfontconfig1", - "libfreetype6", - "libgdk-pixbuf-2.0-0", - "libglib2.0-0", - "libgtk-3-0", - "libharfbuzz0b", - "libpango-1.0-0", - "libpangocairo-1.0-0", - "libx11-6", - "libx11-xcb1", - "libxcb-shm0", - "libxcb1", - "libxcomposite1", - "libxcursor1", - "libxdamage1", - "libxext6", - "libxfixes3", - "libxi6", - "libxrandr2", - "libxrender1", - "libxtst6", - }, - "webkit": []string{ - "gstreamer1.0-libav", - "gstreamer1.0-plugins-bad", - "gstreamer1.0-plugins-base", - "gstreamer1.0-plugins-good", - "libatk-bridge2.0-0", - "libatk1.0-0", - "libcairo2", - "libdbus-1-3", - "libdrm2", - "libegl1", - "libenchant-2-2", - "libepoxy0", - "libevdev2", - "libfontconfig1", - "libfreetype6", - "libgbm1", - "libgdk-pixbuf-2.0-0", - "libgles2", - "libglib2.0-0", - "libglx0", - "libgstreamer-gl1.0-0", - "libgstreamer-plugins-base1.0-0", - "libgstreamer1.0-0", - "libgtk-3-0", - "libgudev-1.0-0", - "libharfbuzz-icu0", - "libharfbuzz0b", - "libhyphen0", - "libicu67", - "libjpeg62-turbo", - "liblcms2-2", - "libmanette-0.2-0", - "libnghttp2-14", - "libnotify4", - "libopengl0", - "libopenjp2-7", - "libopus0", - "libpango-1.0-0", - "libpng16-16", - "libproxy1v5", - "libsecret-1-0", - "libwayland-client0", - "libwayland-egl1", - "libwayland-server0", - "libwebp6", - "libwebpdemux2", - "libwoff1", - "libx11-6", - "libxcomposite1", - "libxdamage1", - "libxkbcommon0", - "libxml2", - "libxslt1.1", - "libatomic1", - "libevent-2.1-7", - }, - }, "debian12": { "tools": []string{ "xvfb", diff --git a/features/test/playwright-deps/test-images.json b/features/test/playwright-deps/test-images.json index 44dee96..531cc48 100644 --- a/features/test/playwright-deps/test-images.json +++ b/features/test/playwright-deps/test-images.json @@ -1,5 +1,4 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:debian-13", "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", From 0d2431642a5c3495958dba6645a4953e10ae8059 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 05/10] style: Remove all '--add-host' directives in test scenarios and use 4 space indent --- features/test/browsers/scenarios.json | 22 ++++----------- features/test/build-essential/scenarios.json | 7 ++--- features/test/claude-code/scenarios.json | 5 +--- features/test/cypress-deps/scenarios.json | 7 ++--- features/test/docker-out/scenarios.json | 17 +++-------- features/test/dotnet/scenarios.json | 12 ++------ features/test/eclipse-deps/scenarios.json | 7 ++--- features/test/git-lfs/scenarios.json | 7 ++--- features/test/github-cli/scenarios.json | 5 +--- .../test/github-copilot-cli/scenarios.json | 5 +--- features/test/gitlab-cli/scenarios.json | 7 ++--- features/test/go/scenarios.json | 12 ++------ features/test/gonovate/scenarios.json | 7 ++--- features/test/goreleaser/scenarios.json | 7 ++--- features/test/instant-client/scenarios.json | 7 ++--- features/test/jfrog-cli/scenarios.json | 7 ++--- features/test/kubectl/scenarios.json | 12 ++------ features/test/locale/scenarios.json | 12 ++------ features/test/make/scenarios.json | 7 ++--- features/test/mingw/scenarios.json | 7 ++--- features/test/nginx/scenarios.json | 7 ++--- features/test/node/scenarios.json | 18 ++++-------- features/test/npm-packages/scenarios.json | 7 ++--- features/test/nvidia-cuda/scenarios.json | 12 ++------ features/test/opencode/scenarios.json | 5 +--- features/test/playwright-deps/scenarios.json | 7 ++--- features/test/python/scenarios.json | 12 ++------ features/test/rust/scenarios.json | 28 ++++++++----------- .../test/sonar-scanner-cli/scenarios.json | 16 ++++------- features/test/system-packages/scenarios.json | 23 +++++++-------- features/test/terraform/scenarios.json | 7 ++--- features/test/timezone/scenarios.json | 12 ++------ features/test/vault-cli/scenarios.json | 7 ++--- features/test/zig/scenarios.json | 7 ++--- 34 files changed, 100 insertions(+), 247 deletions(-) diff --git a/features/test/browsers/scenarios.json b/features/test/browsers/scenarios.json index 071c452..7ddf529 100644 --- a/features/test/browsers/scenarios.json +++ b/features/test/browsers/scenarios.json @@ -1,10 +1,7 @@ { "chrome": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./browsers": { @@ -16,10 +13,7 @@ }, "chrome-testing": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./browsers": { @@ -31,10 +25,7 @@ }, "firefox": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./browsers": { @@ -46,10 +37,7 @@ }, "firefox-after-135": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./browsers": { @@ -59,4 +47,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/build-essential/scenarios.json b/features/test/build-essential/scenarios.json index cad1e11..0aada0c 100644 --- a/features/test/build-essential/scenarios.json +++ b/features/test/build-essential/scenarios.json @@ -1,13 +1,10 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./build-essential": {} } } -} \ No newline at end of file +} diff --git a/features/test/claude-code/scenarios.json b/features/test/claude-code/scenarios.json index f76f864..7e5bc00 100644 --- a/features/test/claude-code/scenarios.json +++ b/features/test/claude-code/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./claude-code": { diff --git a/features/test/cypress-deps/scenarios.json b/features/test/cypress-deps/scenarios.json index a934d70..eed2b7b 100644 --- a/features/test/cypress-deps/scenarios.json +++ b/features/test/cypress-deps/scenarios.json @@ -1,13 +1,10 @@ { "packages_installed": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./cypress-deps": {} } } -} \ No newline at end of file +} diff --git a/features/test/docker-out/scenarios.json b/features/test/docker-out/scenarios.json index f68d1d5..65c6685 100644 --- a/features/test/docker-out/scenarios.json +++ b/features/test/docker-out/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./docker-out": { @@ -16,10 +13,7 @@ }, "install-exact": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./docker-out": { @@ -31,10 +25,7 @@ }, "install-config": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./docker-out": { @@ -45,4 +36,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/dotnet/scenarios.json b/features/test/dotnet/scenarios.json index 4deeb20..dbff966 100644 --- a/features/test/dotnet/scenarios.json +++ b/features/test/dotnet/scenarios.json @@ -1,10 +1,7 @@ { "sdk-only": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./dotnet": { @@ -15,10 +12,7 @@ }, "multiple-sdk": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./dotnet": { @@ -30,4 +24,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/eclipse-deps/scenarios.json b/features/test/eclipse-deps/scenarios.json index ee6f015..777f96c 100644 --- a/features/test/eclipse-deps/scenarios.json +++ b/features/test/eclipse-deps/scenarios.json @@ -1,13 +1,10 @@ { "packages_installed": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./eclipse-deps": {} } } -} \ No newline at end of file +} diff --git a/features/test/git-lfs/scenarios.json b/features/test/git-lfs/scenarios.json index 77ae88e..e5b0482 100644 --- a/features/test/git-lfs/scenarios.json +++ b/features/test/git-lfs/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./git-lfs": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/github-cli/scenarios.json b/features/test/github-cli/scenarios.json index bb2e174..0d54810 100644 --- a/features/test/github-cli/scenarios.json +++ b/features/test/github-cli/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./github-cli": { diff --git a/features/test/github-copilot-cli/scenarios.json b/features/test/github-copilot-cli/scenarios.json index a9fcc22..95bf9d7 100644 --- a/features/test/github-copilot-cli/scenarios.json +++ b/features/test/github-copilot-cli/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./github-copilot-cli": { diff --git a/features/test/gitlab-cli/scenarios.json b/features/test/gitlab-cli/scenarios.json index c0c56e5..b508713 100644 --- a/features/test/gitlab-cli/scenarios.json +++ b/features/test/gitlab-cli/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./gitlab-cli": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/go/scenarios.json b/features/test/go/scenarios.json index f5ac78f..11a2aed 100644 --- a/features/test/go/scenarios.json +++ b/features/test/go/scenarios.json @@ -1,10 +1,7 @@ { "install-exact": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./go": { @@ -14,10 +11,7 @@ }, "install-with-resolve": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./go": { @@ -25,4 +19,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/gonovate/scenarios.json b/features/test/gonovate/scenarios.json index 350f295..414bc8d 100644 --- a/features/test/gonovate/scenarios.json +++ b/features/test/gonovate/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./gonovate": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/goreleaser/scenarios.json b/features/test/goreleaser/scenarios.json index 57b9527..fc772c2 100644 --- a/features/test/goreleaser/scenarios.json +++ b/features/test/goreleaser/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./goreleaser": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/instant-client/scenarios.json b/features/test/instant-client/scenarios.json index 9fffe76..cacbe5b 100644 --- a/features/test/instant-client/scenarios.json +++ b/features/test/instant-client/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./instant-client": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/jfrog-cli/scenarios.json b/features/test/jfrog-cli/scenarios.json index c0542b1..90ed62b 100644 --- a/features/test/jfrog-cli/scenarios.json +++ b/features/test/jfrog-cli/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./jfrog-cli": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/kubectl/scenarios.json b/features/test/kubectl/scenarios.json index b1bc702..6ed427d 100644 --- a/features/test/kubectl/scenarios.json +++ b/features/test/kubectl/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./kubectl": { @@ -21,10 +18,7 @@ }, "full": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./kubectl": { @@ -39,4 +33,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/locale/scenarios.json b/features/test/locale/scenarios.json index 86f919e..b153f41 100644 --- a/features/test/locale/scenarios.json +++ b/features/test/locale/scenarios.json @@ -1,10 +1,7 @@ { "de_ch": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./locale": { @@ -19,10 +16,7 @@ }, "en_us": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./locale": { @@ -35,4 +29,4 @@ "LC_ALL": "en_US.UTF-8" } } -} \ No newline at end of file +} diff --git a/features/test/make/scenarios.json b/features/test/make/scenarios.json index c0b8e5e..b2e95fb 100644 --- a/features/test/make/scenarios.json +++ b/features/test/make/scenarios.json @@ -1,13 +1,10 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./make": {} } } -} \ No newline at end of file +} diff --git a/features/test/mingw/scenarios.json b/features/test/mingw/scenarios.json index 225464a..4b8c0ad 100644 --- a/features/test/mingw/scenarios.json +++ b/features/test/mingw/scenarios.json @@ -1,13 +1,10 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./mingw": {} } } -} \ No newline at end of file +} diff --git a/features/test/nginx/scenarios.json b/features/test/nginx/scenarios.json index 58eefa2..024e421 100644 --- a/features/test/nginx/scenarios.json +++ b/features/test/nginx/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./nginx": { @@ -13,4 +10,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/node/scenarios.json b/features/test/node/scenarios.json index d5e9d0f..4675ebf 100644 --- a/features/test/node/scenarios.json +++ b/features/test/node/scenarios.json @@ -1,15 +1,12 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./node": { - "version": "20.11.1", - "npmVersion": "10.5.0", + "version": "20.11.1", + "npmVersion": "10.5.0", "yarnVersion": "1.22.22", "pnpmVersion": "9.14.2" } @@ -17,16 +14,13 @@ }, "corepack": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./node": { - "version": "24.4.1", + "version": "24.4.1", "corepackVersion": "0.34.0" } } } -} \ No newline at end of file +} diff --git a/features/test/npm-packages/scenarios.json b/features/test/npm-packages/scenarios.json index c03c90e..2ce2776 100644 --- a/features/test/npm-packages/scenarios.json +++ b/features/test/npm-packages/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "ghcr.io/postfinance/devcontainer-features/node": { @@ -15,4 +12,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/nvidia-cuda/scenarios.json b/features/test/nvidia-cuda/scenarios.json index b79954f..51f7c8b 100644 --- a/features/test/nvidia-cuda/scenarios.json +++ b/features/test/nvidia-cuda/scenarios.json @@ -6,10 +6,7 @@ "http_proxy": "${localEnv:http_proxy}", "https_proxy": "${localEnv:https_proxy}", "no_proxy": "${localEnv:no_proxy}" - }, - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + } }, "features": { "./nvidia-cuda": { @@ -28,10 +25,7 @@ "http_proxy": "${localEnv:http_proxy}", "https_proxy": "${localEnv:https_proxy}", "no_proxy": "${localEnv:no_proxy}" - }, - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + } }, "features": { "./nvidia-cuda": { @@ -44,4 +38,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/opencode/scenarios.json b/features/test/opencode/scenarios.json index 017774f..b86b623 100644 --- a/features/test/opencode/scenarios.json +++ b/features/test/opencode/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./opencode": { diff --git a/features/test/playwright-deps/scenarios.json b/features/test/playwright-deps/scenarios.json index d2dde65..b76cd44 100644 --- a/features/test/playwright-deps/scenarios.json +++ b/features/test/playwright-deps/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./playwright-deps": { @@ -14,4 +11,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/python/scenarios.json b/features/test/python/scenarios.json index 203c27c..b958411 100644 --- a/features/test/python/scenarios.json +++ b/features/test/python/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./python": { @@ -14,10 +11,7 @@ }, "install-alpha": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./python": { @@ -25,4 +19,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/rust/scenarios.json b/features/test/rust/scenarios.json index 1eadbe4..e165707 100644 --- a/features/test/rust/scenarios.json +++ b/features/test/rust/scenarios.json @@ -1,36 +1,30 @@ { "install-with-windows-target": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./rust": { - "version": "1.76", - "rustupVersion": "1.27.1", - "profile": "minimal", - "components": "rustfmt,rust-analyzer,rust-src,clippy", + "version": "1.76", + "rustupVersion": "1.27.1", + "profile": "minimal", + "components": "rustfmt,rust-analyzer,rust-src,clippy", "enableWindowsTarget": "true" } } }, "install-without-windows-target": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./rust": { - "version": "1.76", - "rustupVersion": "1.27.1", - "profile": "minimal", - "components": "rustfmt,rust-analyzer,rust-src,clippy", + "version": "1.76", + "rustupVersion": "1.27.1", + "profile": "minimal", + "components": "rustfmt,rust-analyzer,rust-src,clippy", "enableWindowsTarget": "false" } } } -} \ No newline at end of file +} diff --git a/features/test/sonar-scanner-cli/scenarios.json b/features/test/sonar-scanner-cli/scenarios.json index 9bed193..9d494e5 100644 --- a/features/test/sonar-scanner-cli/scenarios.json +++ b/features/test/sonar-scanner-cli/scenarios.json @@ -1,33 +1,27 @@ { "install-with-jre": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./sonar-scanner-cli": { - "version": "6.2.1.4610", + "version": "6.2.1.4610", "includeJre": "true" } } }, "install-without-jre": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "ghcr.io/devcontainers/features/java:1": { "version": "25" }, "./sonar-scanner-cli": { - "version": "7.3.0.5189", + "version": "7.3.0.5189", "includeJre": "false" } } } -} \ No newline at end of file +} diff --git a/features/test/system-packages/scenarios.json b/features/test/system-packages/scenarios.json index 0722a86..4d0ab5f 100644 --- a/features/test/system-packages/scenarios.json +++ b/features/test/system-packages/scenarios.json @@ -1,15 +1,12 @@ { - "ci-utility": { - "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] - }, - "features": { - "./system-packages": { - "packages": "yq,yamllint,sshpass" - } + "ci-utility": { + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "./system-packages": { + "packages": "yq,yamllint,sshpass" + } + } } - } -} \ No newline at end of file +} diff --git a/features/test/terraform/scenarios.json b/features/test/terraform/scenarios.json index 45407d5..bef1252 100644 --- a/features/test/terraform/scenarios.json +++ b/features/test/terraform/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./terraform": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/timezone/scenarios.json b/features/test/timezone/scenarios.json index 8c171e6..638f888 100644 --- a/features/test/timezone/scenarios.json +++ b/features/test/timezone/scenarios.json @@ -1,10 +1,7 @@ { "tz_europe_zurich": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./timezone": { @@ -14,10 +11,7 @@ }, "tz_utc": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./timezone": { @@ -25,4 +19,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/vault-cli/scenarios.json b/features/test/vault-cli/scenarios.json index 35175d5..701da8d 100644 --- a/features/test/vault-cli/scenarios.json +++ b/features/test/vault-cli/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./vault-cli": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} diff --git a/features/test/zig/scenarios.json b/features/test/zig/scenarios.json index a0914e7..d9cda7b 100644 --- a/features/test/zig/scenarios.json +++ b/features/test/zig/scenarios.json @@ -1,10 +1,7 @@ { "install": { "build": { - "dockerfile": "Dockerfile", - "options": [ - "--add-host=host.docker.internal:host-gateway" - ] + "dockerfile": "Dockerfile" }, "features": { "./zig": { @@ -12,4 +9,4 @@ } } } -} \ No newline at end of file +} From 437acd5870f9304cd2788d15c05d288e288b1890 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 06/10] chore: Update test images to include Debian 12, 13 and Ubuntu 24 and 26 and remove older releases --- features/test/browsers/test-images.json | 9 +++++---- features/test/build-essential/test-images.json | 9 +++++---- features/test/claude-code/test-images.json | 7 ++++--- features/test/cypress-deps/test-images.json | 10 +++++----- features/test/docker-out/test-images.json | 9 +++++---- features/test/dotnet/test-images.json | 8 +++++--- features/test/eclipse-deps/test-images.json | 9 +++++---- features/test/git-lfs/test-images.json | 9 +++++---- features/test/github-cli/test-images.json | 7 ++++--- features/test/github-copilot-cli/test-images.json | 7 ++++--- features/test/gitlab-cli/test-images.json | 9 +++++---- features/test/go/test-images.json | 9 +++++---- features/test/gonovate/test-images.json | 9 +++++---- features/test/goreleaser/test-images.json | 9 +++++---- features/test/instant-client/test-images.json | 9 +++++---- features/test/jfrog-cli/test-images.json | 9 +++++---- features/test/kubectl/test-images.json | 9 +++++---- features/test/locale/test-images.json | 9 +++++---- features/test/make/test-images.json | 9 +++++---- features/test/mingw/test-images.json | 9 +++++---- features/test/nginx/test-images.json | 9 +++++---- features/test/node/test-images.json | 9 +++++---- features/test/npm-packages/test-images.json | 9 +++++---- features/test/nvidia-cuda/test-images.json | 9 +++++---- features/test/opencode/test-images.json | 7 ++++--- features/test/playwright-deps/test-images.json | 8 ++++---- features/test/python/test-images.json | 9 +++++---- features/test/rust/test-images.json | 10 +++++----- features/test/sonar-scanner-cli/test-images.json | 9 +++++---- features/test/system-packages/test-images.json | 11 ++++++----- features/test/terraform/test-images.json | 9 +++++---- features/test/timezone/test-images.json | 9 +++++---- features/test/vault-cli/test-images.json | 9 +++++---- features/test/zig/test-images.json | 9 +++++---- 34 files changed, 166 insertions(+), 134 deletions(-) diff --git a/features/test/browsers/test-images.json b/features/test/browsers/test-images.json index 4db9a33..7e091f0 100644 --- a/features/test/browsers/test-images.json +++ b/features/test/browsers/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/build-essential/test-images.json b/features/test/build-essential/test-images.json index 4db9a33..7e091f0 100644 --- a/features/test/build-essential/test-images.json +++ b/features/test/build-essential/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/claude-code/test-images.json b/features/test/claude-code/test-images.json index 42119c9..d2c2bf7 100644 --- a/features/test/claude-code/test-images.json +++ b/features/test/claude-code/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" ] diff --git a/features/test/cypress-deps/test-images.json b/features/test/cypress-deps/test-images.json index 9e621d6..7e091f0 100644 --- a/features/test/cypress-deps/test-images.json +++ b/features/test/cypress-deps/test-images.json @@ -1,6 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:debian-13", - "mcr.microsoft.com/devcontainers/base:ubuntu-22.04", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/docker-out/test-images.json b/features/test/docker-out/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/docker-out/test-images.json +++ b/features/test/docker-out/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/dotnet/test-images.json b/features/test/dotnet/test-images.json index 12913d7..d2c2bf7 100644 --- a/features/test/dotnet/test-images.json +++ b/features/test/dotnet/test-images.json @@ -1,5 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/eclipse-deps/test-images.json b/features/test/eclipse-deps/test-images.json index 4db9a33..7e091f0 100644 --- a/features/test/eclipse-deps/test-images.json +++ b/features/test/eclipse-deps/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/git-lfs/test-images.json b/features/test/git-lfs/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/git-lfs/test-images.json +++ b/features/test/git-lfs/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/github-cli/test-images.json b/features/test/github-cli/test-images.json index 42119c9..d2c2bf7 100644 --- a/features/test/github-cli/test-images.json +++ b/features/test/github-cli/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" ] diff --git a/features/test/github-copilot-cli/test-images.json b/features/test/github-copilot-cli/test-images.json index 5c1d5eb..7e091f0 100644 --- a/features/test/github-copilot-cli/test-images.json +++ b/features/test/github-copilot-cli/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" ] diff --git a/features/test/gitlab-cli/test-images.json b/features/test/gitlab-cli/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/gitlab-cli/test-images.json +++ b/features/test/gitlab-cli/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/go/test-images.json b/features/test/go/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/go/test-images.json +++ b/features/test/go/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/gonovate/test-images.json b/features/test/gonovate/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/gonovate/test-images.json +++ b/features/test/gonovate/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/goreleaser/test-images.json b/features/test/goreleaser/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/goreleaser/test-images.json +++ b/features/test/goreleaser/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/instant-client/test-images.json b/features/test/instant-client/test-images.json index 4db9a33..7e091f0 100644 --- a/features/test/instant-client/test-images.json +++ b/features/test/instant-client/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/jfrog-cli/test-images.json b/features/test/jfrog-cli/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/jfrog-cli/test-images.json +++ b/features/test/jfrog-cli/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/kubectl/test-images.json b/features/test/kubectl/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/kubectl/test-images.json +++ b/features/test/kubectl/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/locale/test-images.json b/features/test/locale/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/locale/test-images.json +++ b/features/test/locale/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/make/test-images.json b/features/test/make/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/make/test-images.json +++ b/features/test/make/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/mingw/test-images.json b/features/test/mingw/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/mingw/test-images.json +++ b/features/test/mingw/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/nginx/test-images.json b/features/test/nginx/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/nginx/test-images.json +++ b/features/test/nginx/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/node/test-images.json b/features/test/node/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/node/test-images.json +++ b/features/test/node/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/npm-packages/test-images.json b/features/test/npm-packages/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/npm-packages/test-images.json +++ b/features/test/npm-packages/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/nvidia-cuda/test-images.json b/features/test/nvidia-cuda/test-images.json index c416ff0..7e091f0 100644 --- a/features/test/nvidia-cuda/test-images.json +++ b/features/test/nvidia-cuda/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:debian-13", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/opencode/test-images.json b/features/test/opencode/test-images.json index 42119c9..d2c2bf7 100644 --- a/features/test/opencode/test-images.json +++ b/features/test/opencode/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" ] diff --git a/features/test/playwright-deps/test-images.json b/features/test/playwright-deps/test-images.json index 531cc48..7e091f0 100644 --- a/features/test/playwright-deps/test-images.json +++ b/features/test/playwright-deps/test-images.json @@ -1,6 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:debian-13", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu-26.04" + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" ] diff --git a/features/test/python/test-images.json b/features/test/python/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/python/test-images.json +++ b/features/test/python/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/rust/test-images.json b/features/test/rust/test-images.json index e1b870e..7e091f0 100644 --- a/features/test/rust/test-images.json +++ b/features/test/rust/test-images.json @@ -1,6 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:debian-13", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/sonar-scanner-cli/test-images.json b/features/test/sonar-scanner-cli/test-images.json index baaeb21..7e091f0 100644 --- a/features/test/sonar-scanner-cli/test-images.json +++ b/features/test/sonar-scanner-cli/test-images.json @@ -1,5 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/system-packages/test-images.json b/features/test/system-packages/test-images.json index 5d01b14..d2c2bf7 100644 --- a/features/test/system-packages/test-images.json +++ b/features/test/system-packages/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-12", - "mcr.microsoft.com/devcontainers/base:debian-13", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", - "mcr.microsoft.com/devcontainers/base:alpine" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:alpine", + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/terraform/test-images.json b/features/test/terraform/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/terraform/test-images.json +++ b/features/test/terraform/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/timezone/test-images.json b/features/test/timezone/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/timezone/test-images.json +++ b/features/test/timezone/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/vault-cli/test-images.json b/features/test/vault-cli/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/vault-cli/test-images.json +++ b/features/test/vault-cli/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] diff --git a/features/test/zig/test-images.json b/features/test/zig/test-images.json index f4cf196..d2c2bf7 100644 --- a/features/test/zig/test-images.json +++ b/features/test/zig/test-images.json @@ -1,6 +1,7 @@ [ - "mcr.microsoft.com/devcontainers/base:debian-11", - "mcr.microsoft.com/devcontainers/base:debian-12", "mcr.microsoft.com/devcontainers/base:alpine", - "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" -] \ No newline at end of file + "mcr.microsoft.com/devcontainers/base:debian12", + "mcr.microsoft.com/devcontainers/base:debian13", + "mcr.microsoft.com/devcontainers/base:ubuntu24.04", + "mcr.microsoft.com/devcontainers/base:ubuntu26.04" +] From e41a9222f2b81252cc69edc4f7a48d8d538f058a Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:31:31 +0000 Subject: [PATCH 07/10] chore: Update Go to latest version --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 513b818..6b76d23 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -8,7 +8,7 @@ }, "features": { "ghcr.io/postfinance/devcontainer-features/go:1.0.0": { - "version": "1.25.9" + "version": "1.26.5" }, "ghcr.io/postfinance/devcontainer-features/docker-out:1.0.0": { "version": "29.6.2", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db3581e..bc3b08c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ on: type: boolean env: - GO_VERSION: 1.25.9 + GO_VERSION: 1.26.5 NODE_VERSION: 22 jobs: From f34a52fea6f8ff41d2729d2222244d04d45fdffd Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 13:35:12 +0000 Subject: [PATCH 08/10] revert: Undo test os images changes for features that don't yet support modern Debian or Ubuntu --- features/test/browsers/test-images.json | 9 ++++----- features/test/cypress-deps/test-images.json | 10 +++++----- features/test/eclipse-deps/test-images.json | 9 ++++----- features/test/instant-client/test-images.json | 9 ++++----- features/test/nginx/test-images.json | 9 ++++----- features/test/nvidia-cuda/test-images.json | 9 ++++----- 6 files changed, 25 insertions(+), 30 deletions(-) diff --git a/features/test/browsers/test-images.json b/features/test/browsers/test-images.json index 7e091f0..4db9a33 100644 --- a/features/test/browsers/test-images.json +++ b/features/test/browsers/test-images.json @@ -1,6 +1,5 @@ [ - "mcr.microsoft.com/devcontainers/base:debian12", - "mcr.microsoft.com/devcontainers/base:debian13", - "mcr.microsoft.com/devcontainers/base:ubuntu24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu26.04" -] + "mcr.microsoft.com/devcontainers/base:debian-11", + "mcr.microsoft.com/devcontainers/base:debian-12", + "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" +] \ No newline at end of file diff --git a/features/test/cypress-deps/test-images.json b/features/test/cypress-deps/test-images.json index 7e091f0..9e621d6 100644 --- a/features/test/cypress-deps/test-images.json +++ b/features/test/cypress-deps/test-images.json @@ -1,6 +1,6 @@ [ - "mcr.microsoft.com/devcontainers/base:debian12", - "mcr.microsoft.com/devcontainers/base:debian13", - "mcr.microsoft.com/devcontainers/base:ubuntu24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu26.04" -] + "mcr.microsoft.com/devcontainers/base:debian-12", + "mcr.microsoft.com/devcontainers/base:debian-13", + "mcr.microsoft.com/devcontainers/base:ubuntu-22.04", + "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" +] \ No newline at end of file diff --git a/features/test/eclipse-deps/test-images.json b/features/test/eclipse-deps/test-images.json index 7e091f0..4db9a33 100644 --- a/features/test/eclipse-deps/test-images.json +++ b/features/test/eclipse-deps/test-images.json @@ -1,6 +1,5 @@ [ - "mcr.microsoft.com/devcontainers/base:debian12", - "mcr.microsoft.com/devcontainers/base:debian13", - "mcr.microsoft.com/devcontainers/base:ubuntu24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu26.04" -] + "mcr.microsoft.com/devcontainers/base:debian-11", + "mcr.microsoft.com/devcontainers/base:debian-12", + "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" +] \ No newline at end of file diff --git a/features/test/instant-client/test-images.json b/features/test/instant-client/test-images.json index 7e091f0..4db9a33 100644 --- a/features/test/instant-client/test-images.json +++ b/features/test/instant-client/test-images.json @@ -1,6 +1,5 @@ [ - "mcr.microsoft.com/devcontainers/base:debian12", - "mcr.microsoft.com/devcontainers/base:debian13", - "mcr.microsoft.com/devcontainers/base:ubuntu24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu26.04" -] + "mcr.microsoft.com/devcontainers/base:debian-11", + "mcr.microsoft.com/devcontainers/base:debian-12", + "mcr.microsoft.com/devcontainers/base:ubuntu-22.04" +] \ No newline at end of file diff --git a/features/test/nginx/test-images.json b/features/test/nginx/test-images.json index 7e091f0..baaeb21 100644 --- a/features/test/nginx/test-images.json +++ b/features/test/nginx/test-images.json @@ -1,6 +1,5 @@ [ - "mcr.microsoft.com/devcontainers/base:debian12", - "mcr.microsoft.com/devcontainers/base:debian13", - "mcr.microsoft.com/devcontainers/base:ubuntu24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu26.04" -] + "mcr.microsoft.com/devcontainers/base:debian-11", + "mcr.microsoft.com/devcontainers/base:debian-12", + "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" +] \ No newline at end of file diff --git a/features/test/nvidia-cuda/test-images.json b/features/test/nvidia-cuda/test-images.json index 7e091f0..c416ff0 100644 --- a/features/test/nvidia-cuda/test-images.json +++ b/features/test/nvidia-cuda/test-images.json @@ -1,6 +1,5 @@ [ - "mcr.microsoft.com/devcontainers/base:debian12", - "mcr.microsoft.com/devcontainers/base:debian13", - "mcr.microsoft.com/devcontainers/base:ubuntu24.04", - "mcr.microsoft.com/devcontainers/base:ubuntu26.04" -] + "mcr.microsoft.com/devcontainers/base:debian-12", + "mcr.microsoft.com/devcontainers/base:debian-13", + "mcr.microsoft.com/devcontainers/base:ubuntu-24.04" +] \ No newline at end of file From dd9426ae47ecf6e80b1b270ace84e1f3938e43ac Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 14:26:25 +0000 Subject: [PATCH 09/10] ci: Add scheduled pipeline that disabled fail-fast strategy and always runs tests --- .github/workflows/ci.yml | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc3b08c..fd19843 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,12 +5,20 @@ on: branches: [ main ] pull_request: branches: [ main ] + schedule: + - cron: '0 20 * * 2' + timezone: Europe/Zurich workflow_dispatch: inputs: force-tests: description: 'Force build/test even if version is already published' required: false - default: 'false' + default: false + type: boolean + strategy-fail-fast: + description: 'Keep matrix fail-fast enabled (set false to continue running remaining matrix jobs after a failure)' + required: false + default: true type: boolean env: @@ -21,6 +29,10 @@ jobs: # Build Job build: strategy: + # we want to fail-fast unless: + # - workflow inputs specifies not to fail-fast + # - scheduled build + fail-fast: ${{ github.event_name != 'schedule' && (github.event_name != 'workflow_dispatch' || inputs.strategy-fail-fast) }} matrix: feature: [ "browsers", @@ -76,36 +88,36 @@ jobs: - name: Check if version already published id: check-version run: | - if [[ "${{ inputs.force-tests }}" == "true" ]]; then - echo "already_published=false" >> $GITHUB_OUTPUT + if [[ "${{ github.event_name }}" == "schedule" || ( "${{ github.event_name }}" == "workflow_dispatch" && "${{ inputs.force-tests }}" == "true" ) ]]; then + echo "run_tests=true" >> $GITHUB_OUTPUT else VERSION=$(jq -r '.version' features/src/${{ matrix.feature }}/devcontainer-feature.json) if docker manifest inspect "ghcr.io/postfinance/devcontainer-features/${{ matrix.feature }}:$VERSION" > /dev/null 2>&1; then - echo "already_published=true" >> $GITHUB_OUTPUT + echo "run_tests=false" >> $GITHUB_OUTPUT else - echo "already_published=false" >> $GITHUB_OUTPUT + echo "run_tests=true" >> $GITHUB_OUTPUT fi fi - name: Setup environment - if: steps.check-version.outputs.already_published == 'false' + if: ${{ steps.check-version.outputs.run_tests == 'true' }} uses: ./.github/actions/setup-env with: go-version: ${{ env.GO_VERSION }} node-version: ${{ env.NODE_VERSION }} - name: Build - if: steps.check-version.outputs.already_published == 'false' + if: ${{ steps.check-version.outputs.run_tests == 'true' }} run: go run ./build --target "Feature:${{ matrix.feature }}:Package" - name: Test - if: steps.check-version.outputs.already_published == 'false' + if: ${{ steps.check-version.outputs.run_tests == 'true' }} run: go run ./build --target "Feature:${{ matrix.feature }}:Test" # Publish Job publish: needs: build - if: github.ref == 'refs/heads/main' + if: ${{ github.ref == 'refs/heads/main' && github.event_name != 'schedule' }} runs-on: ubuntu-latest permissions: contents: read From 43f06e70ee933784c4becf017a4164f435532414 Mon Sep 17 00:00:00 2001 From: Christoph Mathys Date: Tue, 21 Jul 2026 14:31:32 +0000 Subject: [PATCH 10/10] ci: Add job to verify that all readme.md are up-to-date --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd19843..73ded42 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,8 +26,35 @@ env: NODE_VERSION: 22 jobs: + # README Consistency Job + verify-readme-files: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup environment + uses: ./.github/actions/setup-env + with: + go-version: ${{ env.GO_VERSION }} + node-version: ${{ env.NODE_VERSION }} + + - name: Update README files + run: go run ./build --target "Update-Readme-Files" + + - name: Verify README files are up to date + run: | + if [[ -n "$(git status --porcelain)" ]]; then + echo "README files are out of date. Run 'go run ./build --target Update-Readme-Files' and commit the changes." + git --no-pager status --short + exit 1 + fi + # Build Job build: + needs: verify-readme-files strategy: # we want to fail-fast unless: # - workflow inputs specifies not to fail-fast