diff --git a/.github/renovate.json5 b/.github/renovate.json5 index f86f04e..6c80001 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -125,8 +125,17 @@ matchPackageNames: [ 'earthbuild/dind', ], - matchCurrentVersion: '/^alpine-.*/', - allowedVersions: '/^alpine-.*/', + matchCurrentVersion: '/^alpine-3\\.22-.*/', + allowedVersions: '/^alpine-3\\.22-.*/', + versioning: 'regex:^(?.*)-(?\\d+\\.\\d+)-docker-(?\\d+)\\.(?\\d+)\\.(?\\d+)-r(?\\d+)$', + }, + { + groupName: 'docs-dind-images', + matchPackageNames: [ + 'earthbuild/dind', + ], + matchCurrentVersion: '/^alpine-3\\.23-.*/', + allowedVersions: '/^alpine-3\\.23-.*/', versioning: 'regex:^(?.*)-(?\\d+\\.\\d+)-docker-(?\\d+)\\.(?\\d+)\\.(?\\d+)-r(?\\d+)$', }, { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 625b28a..c2cee7e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,8 +21,13 @@ jobs: strategy: matrix: - os: [alpine, ubuntu-20.04, ubuntu-23.04, ubuntu-24.04] - runs-on: ubuntu-latest + os: + - alpine-3.22 + - alpine-3.23 + - ubuntu-20.04 + - ubuntu-23.04 + - ubuntu-24.04 + runs-on: ubuntu-24.04 permissions: contents: read packages: write diff --git a/README.md b/README.md index 44bdee5..a393448 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,15 @@ For information on how to use these images, please refer to [docker in EarthBuil ## Supported Distributions This image supports the following Linux distributions: -* alpine +* alpine:3.22 +* alpine:3.23 * ubuntu:20.04 * ubuntu:23.04 * ubuntu:24.04 For which the current latest tags (respectively) are: * `alpine-3.22-docker-28.3.3-r2` +* `alpine-3.23-docker-29.1.2-r1` * `ubuntu-20.04-docker-28.1.1-1` * `ubuntu-23.04-docker-25.0.2-1` * `ubuntu-24.04-docker-28.5.1-1` diff --git a/os/alpine/Earthfile b/os/alpine-3.22/Earthfile similarity index 93% rename from os/alpine/Earthfile rename to os/alpine-3.22/Earthfile index a64bbab..7374b68 100644 --- a/os/alpine/Earthfile +++ b/os/alpine-3.22/Earthfile @@ -8,11 +8,11 @@ ARG --global OS_IMAGE=alpine # renovate: datasource=docker depName=alpine ARG --global OS_VERSION=3.22 -# renovate: datasource=repology depName=alpine_3_22/docker versioning=loose +# renovate: datasource=repology depName=alpine_3_22/docker ARG --global DOCKER_VERSION=28.3.3-r4 # 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 +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: diff --git a/os/alpine-3.23/Earthfile b/os/alpine-3.23/Earthfile new file mode 100644 index 0000000..9ecd544 --- /dev/null +++ b/os/alpine-3.23/Earthfile @@ -0,0 +1,43 @@ +VERSION --build-auto-skip 0.8 + +PROJECT earthly-technologies/core + +FROM alpine + +IMPORT ../../common AS common + +ARG --global OS_IMAGE=alpine + +# renovate: datasource=docker depName=alpine +ARG --global OS_VERSION=3.23 +# renovate: datasource=repology depName=alpine_3_23/docker +ARG --global DOCKER_VERSION=29.1.2-r1 + +# 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 an dind:alpine image +build: + BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build + +# test runs test for a dind:alpine image +# this is primarly used to run against a newly, temporariy image build by +test-build +test: + BUILD --pass-args common+alpine-kind-test + BUILD --pass-args common+alpine-docker-compose-test + BUILD --pass-args common+test