diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae2789e..2bc1705 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,7 @@ jobs: - ubuntu-20.04 - ubuntu-23.04 - ubuntu-24.04 + - ubuntu-26.04 runs-on: ubuntu-24.04 permissions: contents: read diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 11638ca..33ad939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,13 +22,17 @@ dependencies that will trigger new versions of the dind images such as the docke ├── common │ └── Earthfile // A library of common helper targets └── os // Each directory contains an Earthfile with targets to maintain the specific os (e.g. +test, +build) - ├── alpine + ├── alpine-3.22 + │ └── Earthfile + ├── alpine-3.23 │ └── Earthfile ├── ubuntu-20.04 │ └── Earthfile ├── ubuntu-23.04 │ └── Earthfile └── ubuntu-24.04 + │ └── Earthfile + └── ubuntu-26.04 └── Earthfile ``` diff --git a/README.md b/README.md index a393448..39a6468 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ This image supports the following Linux distributions: * ubuntu:20.04 * ubuntu:23.04 * ubuntu:24.04 +* ubuntu:26.04 For which the current latest tags (respectively) are: * `alpine-3.22-docker-28.3.3-r2` @@ -21,6 +22,7 @@ For which the current latest tags (respectively) are: * `ubuntu-20.04-docker-28.1.1-1` * `ubuntu-23.04-docker-25.0.2-1` * `ubuntu-24.04-docker-28.5.1-1` +* `ubuntu-26.04-docker-29.4.1-1` For other available tags, please check out [ghcr.io/earthbuild/dind](https://github.com/earthbuild/dind/pkgs/container/dind/versions?filters%5Bversion_type%5D=tagged) or [earthbuild/dind](https://hub.docker.com/r/earthbuild/dind/tags). diff --git a/os/alpine-3.22/Earthfile b/os/alpine-3.22/Earthfile index e03bdf3..e396066 100644 --- a/os/alpine-3.22/Earthfile +++ b/os/alpine-3.22/Earthfile @@ -28,11 +28,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# test runs test for a dind image # this is primarly used to run against a newly, temporariy image build by +test-build test: BUILD --pass-args common+alpine-kind-test diff --git a/os/alpine-3.23/Earthfile b/os/alpine-3.23/Earthfile index 753b285..3542bfa 100644 --- a/os/alpine-3.23/Earthfile +++ b/os/alpine-3.23/Earthfile @@ -30,11 +30,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# test runs test for a dind image # this is primarly used to run against a newly, temporariy image build by +test-build test: BUILD --pass-args common+alpine-kind-test diff --git a/os/ubuntu-20.04/Earthfile b/os/ubuntu-20.04/Earthfile index 6ddc751..f32aafd 100644 --- a/os/ubuntu-20.04/Earthfile +++ b/os/ubuntu-20.04/Earthfile @@ -29,11 +29,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# test runs test for a dind image # this is primarly used to run against a newly, temporariy image build by +test-build test: BUILD --pass-args common+ubuntu-kind-test diff --git a/os/ubuntu-23.04/Earthfile b/os/ubuntu-23.04/Earthfile index 12685b4..9da802e 100644 --- a/os/ubuntu-23.04/Earthfile +++ b/os/ubuntu-23.04/Earthfile @@ -29,11 +29,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# test runs test for a dind image # this is primarly used to run against a newly, temporariy image build by +test-build test: BUILD --pass-args common+ubuntu-kind-test diff --git a/os/ubuntu-24.04/Earthfile b/os/ubuntu-24.04/Earthfile index b197352..d8e6602 100644 --- a/os/ubuntu-24.04/Earthfile +++ b/os/ubuntu-24.04/Earthfile @@ -29,11 +29,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# test runs test for a dind image # this is primarly used to run against a newly, temporariy image build by +test-build test: BUILD --pass-args common+ubuntu-kind-test diff --git a/os/ubuntu-26.04/Earthfile b/os/ubuntu-26.04/Earthfile new file mode 100644 index 0000000..916c951 --- /dev/null +++ b/os/ubuntu-26.04/Earthfile @@ -0,0 +1,40 @@ +VERSION --build-auto-skip 0.8 + +FROM alpine:3.23.3@sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659 + +IMPORT ../../common AS common + +ARG --global OS_IMAGE=ubuntu + +ARG --global OS_VERSION=26.04 +# renovate: datasource=github-releases depName=docker/docker +LET docker_package_version=29.4.1 +ARG --global DOCKER_VERSION=5:$docker_package_version-1~ubuntu.$OS_VERSION~resolute + +# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION + +# release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix +release: + RUN --no-cache date --utc +%Y%m%d%H%M%S > datetime + LET datetime="$(cat datetime)" + WAIT + BUILD --pass-args common+build-and-test --SUFFIX=$datetime + END + COPY --dir --pass-args common+get-image-info/image-info . + LET image_tag="$(cat image-info/tag)-$datetime" + BUILD --pass-args common+push-new-tag-multi-platform --TAG_WITH_DATE=$image_tag + +# test-build will build a test image that is pushed to a temporary registry and run tests against it +test-build: + BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" + +# build builds a dind image +build: + BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build + +# test runs test for a dind image +# this is primarly used to run against a newly, temporariy image build by +test-build +test: + BUILD --pass-args common+ubuntu-kind-test + BUILD --pass-args common+test