Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,17 @@
matchPackageNames: [
'earthbuild/dind',
],
matchCurrentVersion: '/^alpine-.*/',
allowedVersions: '/^alpine-.*/',
matchCurrentVersion: '/^alpine-3\\.22-.*/',
allowedVersions: '/^alpine-3\\.22-.*/',
versioning: 'regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-r(?<revision>\\d+)$',
},
{
groupName: 'docs-dind-images',
matchPackageNames: [
'earthbuild/dind',
],
matchCurrentVersion: '/^alpine-3\\.23-.*/',
allowedVersions: '/^alpine-3\\.23-.*/',
versioning: 'regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-r(?<revision>\\d+)$',
},
{
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
4 changes: 2 additions & 2 deletions os/alpine/Earthfile β†’ os/alpine-3.22/Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
43 changes: 43 additions & 0 deletions os/alpine-3.23/Earthfile
Original file line number Diff line number Diff line change
@@ -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
Loading