Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
634c667
chore: fix CI workflow (#1)
janishorsts Jun 22, 2025
df684fa
chore: fix Release workflow (#2)
janishorsts Jun 25, 2025
4ec0d0b
chore: fix renovate (#3)
janishorsts Jul 2, 2025
8759b13
chore(renovate): enable forkProcessing (#4)
janishorsts Jul 3, 2025
fcc8111
chore(deps): update earthbuild/earthbuild digest to c10f2cf (#5)
renovate[bot] Jul 9, 2025
d87c1db
chore(config): migrate config .github/renovate.json5 (#6)
renovate[bot] Jul 9, 2025
8c67100
chore(deps): update peter-evans/dockerhub-description action to v4.0.…
renovate[bot] Jul 9, 2025
db8ef7e
chore(deps): update alpine docker tag to v3.22 (#9)
renovate[bot] Jul 9, 2025
5a214b1
chore(deps): update dependency docker/docker to v27.5.1 (#10)
renovate[bot] Jul 10, 2025
27a58f1
chore(deps): update dependency docker/docker to v27.5.1 (#11)
renovate[bot] Jul 10, 2025
c19250e
chore(deps): update docs-dind-images (#12)
renovate[bot] Jul 10, 2025
7d8f530
chore(deps): update earthbuild/dind docker tag to ubuntu-24.04-docker…
renovate[bot] Jul 10, 2025
75595ac
chore(deps): update dependency docker/docker to v28 (#19)
renovate[bot] Jul 11, 2025
9bc34ea
chore(deps): update earthbuild/dind docker tag to ubuntu-24.04-docker…
renovate[bot] Jul 11, 2025
1c56b18
chore: lock docker to v25.0.2 for ubuntu 23.04 (#18)
janishorsts Jul 12, 2025
b997208
chore(renovate): lock docker to 28.1.1 for Ubuntu 20.04 (#21)
janishorsts Jul 14, 2025
38c5876
chore(deps): update dependency docker/docker to v28 (#16)
renovate[bot] Jul 14, 2025
a2158d5
chore(deps): update earthbuild/dind docker tag to ubuntu-20.04-docker…
renovate[bot] Jul 15, 2025
da36ef6
ci: speed up test build (#22)
janishorsts Jul 16, 2025
f94ac88
chore(deps): update earthbuild/earthbuild digest to 0bf3cda (#25)
renovate[bot] Jul 17, 2025
6493c0c
chore: fix update docker hub readme flow (#28)
janishorsts Jul 22, 2025
d4619ea
ci: release ubuntu 23.04 (#29)
janishorsts Jul 22, 2025
5d22823
chore(deps): update dependency docker/docker to v25.0.2 (#30)
renovate[bot] Jul 22, 2025
7032eac
chore(deps): update earthbuild/earthbuild digest to 1075d69 (#32)
renovate[bot] Jul 27, 2025
582bd19
chore(deps): update dependency docker/docker to v28.3.3 (#33)
renovate[bot] Jul 30, 2025
f039080
chore(deps): update dependency alpine_3_22/docker to v28.3.3-r0 (#34)
renovate[bot] Jul 30, 2025
e53d4ea
chore(deps): update earthbuild/earthbuild digest to b8d8b79 (#35)
renovate[bot] Jul 31, 2025
455fc58
chore(renovate): fix update README.md with latest dind versions (#36)
janishorsts Aug 6, 2025
d53b337
chore(deps): update docs-dind-images (#37)
renovate[bot] Aug 6, 2025
82609ca
chore(deps): update earthbuild/earthbuild digest to d70bd9a (#38)
renovate[bot] Aug 6, 2025
3a866ff
chore(deps): update dependency alpine_3_22/docker to v28.3.3-r1 (#39)
renovate[bot] Aug 9, 2025
1f0d2b4
chore(deps): update earthbuild/dind docker tag to alpine-3.22-docker-…
renovate[bot] Aug 9, 2025
f8cf8c4
chore(deps): update actions/checkout action to v5 (#41)
renovate[bot] Aug 11, 2025
afe1ecf
chore(deps): update earthbuild/earthbuild digest to cdead51 (#42)
renovate[bot] Aug 20, 2025
74ad6da
chore(renovate): extend security:openssf-scorecard (#43)
janishorsts Aug 22, 2025
eefeaa0
chore(deps): update earthbuild/earthbuild digest to 6670444 (#44)
renovate[bot] Aug 24, 2025
452575f
chore(deps): update dependency docker/docker to v28.4.0 (#46)
renovate[bot] Sep 4, 2025
8547145
chore(deps): update earthbuild/earthbuild digest to 313d582 (#45)
renovate[bot] Sep 5, 2025
c3c079d
chore(deps): update dependency alpine_3_22/docker to v28.3.3-r2 (#47)
renovate[bot] Sep 16, 2025
a852f21
chore(deps): update earthbuild/earthbuild digest to 799e007 (#48)
renovate[bot] Sep 19, 2025
b62c536
chore(deps): update docs-dind-images (#49)
renovate[bot] Sep 19, 2025
9332555
chore(deps): update earthbuild/earthbuild digest to 6c448d5 (#50)
renovate[bot] Sep 19, 2025
23942d0
chore(deps): update earthbuild/earthbuild digest to 4e75ce1 (#51)
renovate[bot] Sep 21, 2025
5c288a6
chore(deps): update earthbuild/earthbuild digest to bc95557 (#52)
renovate[bot] Sep 22, 2025
e8c4f50
ci: add earthly count
janishorsts Sep 23, 2025
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
5 changes: 3 additions & 2 deletions .arg
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DOCKERHUB_USER=earthly
CR_HOST=ghcr.io
CR_ORG=earthbuild
IMAGE_NAME=dind
EARTHLY_REPO_VERSION=0b28ef80785fd88df1ec7e674475b02e046d5b36
EARTHLY_REPO_VERSION=bc955577ae9cb81dd5d54fd89f417e845e6da3e4
4 changes: 2 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# PRs require approval from the earthly core team
* @earthly/core
# PRs require approval from the EarthBuild admin team
* @EarthBuild/fork-admins
129 changes: 75 additions & 54 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -1,51 +1,48 @@
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
extends: [
"config:recommended"
'config:recommended',
'security:openssf-scorecard'
],
forkProcessing: 'enabled',
configMigration: true,
prHourlyLimit: 1,
schedule: [ // utc timezone
'after 6am on monday',
],
schedule: [],
enabledManagers: [
'dockerfile',
'custom.regex',
'github-actions',
],
dockerfile: {
fileMatch: [
'Earthfile',
managerFilePatterns: [
'/Earthfile/',
],
},
customManagers: [
{
// Earthly Version in GH Actions
customType: 'regex',
fileMatch: [
'.*?\\.yml',
managerFilePatterns: [
'/.*?\\.yml/',
],
matchStrings: [
'- uses: earthly/actions/setup-earthly@.*?[\\s\\n]+.*?[\\s\\n]+with:[\\s\\n]*version: (?<currentValue>.*?)[\\s\\n/]+',
'- uses: earthbuild/actions-setup@.*?[\\s\\n]+.*?[\\s\\n]+with:[\\s\\n]*version: (?<currentValue>.*?)[\\s\\n/]+',
],
depNameTemplate: 'earthly/earthly',
depNameTemplate: 'earthbuild/earthbuild',
datasourceTemplate: 'github-releases',
},
{
// ARG/LET in Earthfile that have a Renovate comment
customType: 'regex',
fileMatch: [
'Earthfile',
managerFilePatterns: [
'/Earthfile/',
],
matchStrings: [
'\\s*#\\s*renovate:\\s*datasource=(?<datasource>.*?)\\s+depName=(?<depName>.*?)[\\s\\n]+(versioning=(?<versioning>.*?)\\s+)?(ARG|LET)\\s+.*?(_VERSION|_VER|version)=(?<currentValue>.*?)($|\\s|\\n)',
],
},
{
// Updating the Repology alpine version
customType: 'regex',
fileMatch: [
'Earthfile',
managerFilePatterns: [
'/Earthfile/',
],
matchStrings: [
'# renovate: datasource=repology depName=alpine_(?<currentValue>\\d+_\\d+)',
Expand All @@ -57,41 +54,36 @@
autoReplaceStringTemplate: '# renovate: datasource=repology depName=alpine_{{{newMajor}}}_{{{newMinor}}}',
},
{
// Updating the commit hash of earthly/earthly
customType: 'regex',
fileMatch: ['^\\.arg$'],
managerFilePatterns: [
'/^\\.arg$/',
],
matchStrings: [
'EARTHLY_REPO_VERSION=(?<currentDigest>.*?)($|\\s|\\n)',
],
currentValueTemplate: 'main',
depNameTemplate: 'earthly/earthly',
packageNameTemplate: 'https://github.com/earthly/earthly',
depNameTemplate: 'earthbuild/earthbuild',
packageNameTemplate: 'https://github.com/earthbuild/earthbuild',
datasourceTemplate: 'git-refs',
},
{
customType: 'regex',
fileMatch: [
'docs/dockerhub.md$',
managerFilePatterns: [
'/^README.md$/',
],
matchStrings: [
'\\*\\s+\\`(?<currentValue>.+?)\\`\\n',
],
depNameTemplate: 'earthly/dind',
depNameTemplate: 'earthbuild/dind',
datasourceTemplate: 'docker',
},
],
labels: [
'renovate',
],
packageRules: [
// set the group name for alpine dind dependencies
{
groupName: "{{{ replace 'os\\/(.*?)$' '$1' packageFileDir}}}-dind-image",
matchPackagePatterns: [
'alpine',
'alpine.*?/docker',
'docker/docker',
],
matchManagers: [
'custom.regex',
],
Expand All @@ -103,46 +95,75 @@
matchFileNames: [
'os/**/Earthfile',
],
matchPackageNames: [
'/alpine/',
'/alpine.*?/docker/',
'/docker/docker/',
],
},
{
// Lock docker to v28.1.1 for Ubuntu 20.04.
matchFileNames: [
'os/ubuntu-20.04/Earthfile',
],
matchPackageNames: [
'docker/docker',
],
allowedVersions: '28.1.1',
},
{
// Lock docker to v25.0.2 for Ubuntu 23.04.
matchFileNames: [
'os/ubuntu-23.04/Earthfile',
],
matchPackageNames: [
'docker/docker',
],
allowedVersions: '25.0.2',
},
{
// let all package updates auto merge
matchPackagePatterns: [ '*' ],
automerge: true,
matchPackageNames: [
'*',
],
},
{
// rule to update earthly/dind:alpine-* images
groupName: 'docs-dind-images',
matchPackageNames: ['earthly/dind'],
matchCurrentVersion: "/^alpine-.*/",
allowedVersions: "/^alpine-.*/",
versioning: "regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-r(?<revision>\\d+)$",
matchPackageNames: [
'earthbuild/dind',
],
matchCurrentVersion: '/^alpine-.*/',
allowedVersions: '/^alpine-.*/',
versioning: 'regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-r(?<revision>\\d+)$',
},
{
// rule to update earthly/dind:ubuntu:20.04-* images
groupName: 'docs-dind-images',
matchPackageNames: ['earthly/dind'],
matchCurrentVersion: "/^ubuntu-20\\.04-.*/",
allowedVersions: "/^ubuntu-20\\.04-.*/",
versioning: "regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-(?<revision>\\d+)$",
matchPackageNames: [
'earthbuild/dind',
],
matchCurrentVersion: '/^ubuntu-20\\.04-.*/',
allowedVersions: '/^ubuntu-20\\.04-.*/',
versioning: 'regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-(?<revision>\\d+)$',
},
{
// rule to update earthly/dind:ubuntu:23.04-* images
groupName: 'docs-dind-images',
matchPackageNames: ['earthly/dind'],
matchCurrentVersion: "/^ubuntu-23\\.04-.*/",
allowedVersions: "/^ubuntu-23\\.04-.*/",
versioning: "regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-(?<revision>\\d+)$",
matchPackageNames: [
'earthbuild/dind',
],
matchCurrentVersion: '/^ubuntu-23\\.04-.*/',
allowedVersions: '/^ubuntu-23\\.04-.*/',
versioning: 'regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-(?<revision>\\d+)$',
},
{
// rule to update earthly/dind:ubuntu:24.04-* images
groupName: 'docs-dind-images',
matchPackageNames: ['earthly/dind'],
matchCurrentVersion: "/^ubuntu-24\\.04-.*/",
allowedVersions: "/^ubuntu-24\\.04-.*/",
versioning: "regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-(?<revision>\\d+)$",
matchPackageNames: [
'earthbuild/dind',
],
matchCurrentVersion: '/^ubuntu-24\\.04-.*/',
allowedVersions: '/^ubuntu-24\\.04-.*/',
versioning: 'regex:^(?<compatibility>.*)-(?<major>\\d+\\.\\d+)-docker-(?<minor>\\d+)\\.(?<patch>\\d+)\\.(?<build>\\d+)-(?<revision>\\d+)$',
},
{
// create PRs for multiple docker versions in case we're more than one major version behind
matchPackageNames: [
'docker/docker',
],
Expand Down
50 changes: 33 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,51 @@ on:
# push:
# branches: [ "main" ]
pull_request:
branches: [ "main" ]
branches: ["main"]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
test:
name: test
name: test (${{ matrix.os }})
strategy:

matrix:
os: [alpine, ubuntu-20.04, ubuntu-23.04, ubuntu-24.04]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
env:
FORCE_COLOR: 1
EARTHLY_CONVERSION_PARALLELISM: "5"
EARTHLY_TOKEN: "${{ secrets.EARTHLY_TOKEN }}"
EARTHLY_INSTALL_ID: "earthly-dind-githubactions"
EARTHLY_INSTALL_ID: "earthbuild-dind-githubactions"
steps:
- uses: earthly/actions/setup-earthly@v1
- uses: actions/checkout@v5
# The dind (common+alpine-kind-test and common+ubuntu-kind-test) detects
# the host's IPv6 capability and then requires IPv6 NAT to create networks
# for kind. So we load it here.
# Ref: https://github.com/moby/moby/pull/47062
- name: Load kernel module IPv6 NAT
run: sudo modprobe ip6table_nat
- name: Set up Docker Hub mirrors
run: |
sudo mkdir -p /etc/docker
echo '{"registry-mirrors": ["https://mirror.gcr.io", "https://public.ecr.aws"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
- name: Set up QEMU
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static binfmt-support
sudo update-binfmts --display
- uses: earthbuild/actions-setup@main
with:
version: v0.8.15
- uses: actions/checkout@v4
- name: Docker login (non fork only)
run: |-
docker login --username "${{ secrets.DOCKERHUB_USERNAME }}" --password "${{ secrets.DOCKERHUB_TOKEN }}"
docker login registry-1.docker.io.mirror.corp.earthly.dev --username "${{ secrets.DOCKERHUB_MIRROR_USERNAME }}" --password "${{ secrets.DOCKERHUB_MIRROR_PASSWORD }}"
if: github.event.pull_request.head.repo.full_name == github.repository
- name: Configure Earthly to use mirror (non fork only)
run: |-
earthly config global.buildkit_additional_config "'[registry.\"docker.io\"]
mirrors = [\"registry-1.docker.io.mirror.corp.earthly.dev\"]'"
- name: Log in to GitHub Container Registry (non fork only)
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
if: github.event.pull_request.head.repo.full_name == github.repository
- name: Run tests
run: earthly --ci -P --push --org earthly-technologies --satellite dind +test
run: earthly --ci -P --push +test --OS=${{ matrix.os }}

21 changes: 21 additions & 0 deletions .github/workflows/dockerhub-description.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Update Docker Hub description

on:
push:
branches: [ main ]
paths: [ README.md ]

jobs:
docker-hub-description:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Update DockerHub description
uses: peter-evans/[email protected]
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: earthbuild/dind
short-description: The `dind` image is designed for EarthBuild targets
Loading