Skip to content

Commit a99623f

Browse files
committed
Use workaround for Github Actions Docker cache
1 parent 3735103 commit a99623f

File tree

3 files changed

+45
-60
lines changed

3 files changed

+45
-60
lines changed

.github/workflows/scheduler_docker_image.yml

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -73,26 +73,14 @@ jobs:
7373
echo "PLATFORMS=linux/amd64,linux/arm64/v8" >> $GITHUB_ENV
7474
fi
7575
76-
# https://github.com/docker/buildx/discussions/1283#discussioncomment-5447590
77-
- name: Docker mount cache
76+
# https://docs.docker.com/build/ci/github-actions/cache/#local-cache
77+
- name: Cache Docker layers
7878
uses: actions/cache@v5
79-
id: docker-mount-cache
8079
with:
81-
key: docker-cache-scheduler-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock') }}
82-
path: docker-cache-uv
80+
path: ${{ runner.temp }}/.buildx-cache
81+
key: ${{ runner.os }}-buildx-scheduler-${{ hashFiles('docker/Dockerfile.scheduler', 'pyproject.toml', 'uv.lock') }}
8382
restore-keys: |
84-
docker-cache-scheduler-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock') }}
85-
docker-cache-scheduler-
86-
87-
- name: Restore Docker cache mounts
88-
uses: reproducible-containers/buildkit-cache-dance@v3
89-
with:
90-
builder: ${{ steps.setup-buildx.outputs.name }}
91-
cache-map: |
92-
{
93-
"docker-cache-uv": "/root/.cache/uv"
94-
}
95-
skip-extraction: ${{ steps.cache-primes.outputs.cache-hit }}
83+
${{ runner.os }}-buildx-scheduler-
9684
9785
- name: Build scheduler image
9886
uses: docker/build-push-action@v6
@@ -104,12 +92,20 @@ jobs:
10492
labels: ${{ steps.meta.outputs.labels }}
10593
pull: true
10694
push: true
107-
cache-to: type=gha,mode=max,scope=scheduler
108-
cache-from: type=gha,scope=scheduler
95+
cache-from: type=local,src=${{ runner.temp }}/.buildx-cache
96+
cache-to: type=local,dest=${{ runner.temp }}/.buildx-cache-new,mode=max,compression=zstd,compression-level=3
10997
platforms: ${{ env.PLATFORMS }}
11098
provenance: mode=max
11199
sbom: true
112100

101+
# Temp fix
102+
# https://github.com/docker/build-push-action/issues/252
103+
# https://github.com/moby/buildkit/issues/1896
104+
- name: Move cache
105+
run: |
106+
rm -rf ${{ runner.temp }}/.buildx-cache
107+
mv ${{ runner.temp }}/.buildx-cache-new ${{ runner.temp }}/.buildx-cache
108+
113109
- name: Convert README to Markdown
114110
uses: docker://pandoc/core:2.9
115111
with:

.github/workflows/server_docker_image.yml

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,26 +68,14 @@ jobs:
6868
echo "PLATFORMS=linux/amd64,linux/arm64/v8" >> $GITHUB_ENV
6969
fi
7070
71-
# https://github.com/docker/buildx/discussions/1283#discussioncomment-5447590
72-
- name: Docker mount cache
71+
# https://docs.docker.com/build/ci/github-actions/cache/#local-cache
72+
- name: Cache Docker layers
7373
uses: actions/cache@v5
74-
id: docker-mount-cache
7574
with:
76-
key: docker-cache-server-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock') }}
77-
path: docker-cache-uv
75+
path: ${{ runner.temp }}/.buildx-cache
76+
key: ${{ runner.os }}-buildx-server-${{ hashFiles('docker/Dockerfile.serer', 'pyproject.toml', 'uv.lock') }}
7877
restore-keys: |
79-
docker-cache-server-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock') }}
80-
docker-cache-server-
81-
82-
- name: Restore Docker cache mounts
83-
uses: reproducible-containers/buildkit-cache-dance@v3
84-
with:
85-
builder: ${{ steps.setup-buildx.outputs.name }}
86-
cache-map: |
87-
{
88-
"docker-cache-uv": "/root/.cache/uv"
89-
}
90-
skip-extraction: ${{ steps.cache-primes.outputs.cache-hit }}
78+
${{ runner.os }}-buildx-server-
9179
9280
- name: Build Server image
9381
uses: docker/build-push-action@v6
@@ -99,12 +87,20 @@ jobs:
9987
labels: ${{ steps.meta.outputs.labels }}
10088
pull: true
10189
push: true
102-
cache-to: type=gha,mode=max,scope=server
103-
cache-from: type=gha,scope=server
90+
cache-from: type=local,src=${{ runner.temp }}/.buildx-cache
91+
cache-to: type=local,dest=${{ runner.temp }}/.buildx-cache-new,mode=max,compression=zstd,compression-level=3
10492
platforms: ${{ env.PLATFORMS }}
10593
provenance: mode=max
10694
sbom: true
10795

96+
# Temp fix
97+
# https://github.com/docker/build-push-action/issues/252
98+
# https://github.com/moby/buildkit/issues/1896
99+
- name: Move cache
100+
run: |
101+
rm -rf ${{ runner.temp }}/.buildx-cache
102+
mv ${{ runner.temp }}/.buildx-cache-new ${{ runner.temp }}/.buildx-cache
103+
108104
- name: Convert README to Markdown
109105
uses: docker://pandoc/core:2.9
110106
with:

.github/workflows/worker_docker_image.yml

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,29 +73,14 @@ jobs:
7373
echo "PLATFORMS=linux/amd64,linux/arm64/v8" >> $GITHUB_ENV
7474
fi
7575
76-
# https://github.com/docker/buildx/discussions/1283#discussioncomment-5447590
77-
- name: Docker mount cache
76+
# https://docs.docker.com/build/ci/github-actions/cache/#local-cache
77+
- name: Cache Docker layers
7878
uses: actions/cache@v5
79-
id: docker-mount-cache
8079
with:
81-
key: docker-cache-worker-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock', 'docker/download_ivy2_packages.py', 'syncmaster/worker/ivy2.py') }}
82-
path: |
83-
docker-cache-uv
84-
docker-cache-ivy2
80+
path: ${{ runner.temp }}/.buildx-cache
81+
key: ${{ runner.os }}-buildx-worker-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock', 'docker/download_ivy2_packages.py', 'syncmaster/worker/ivy2.py') }}
8582
restore-keys: |
86-
docker-cache-worker-${{ hashFiles('docker/Dockerfile.worker', 'pyproject.toml', 'uv.lock', 'docker/download_ivy2_packages.py', 'syncmaster/worker/ivy2.py') }}
87-
docker-cache-worker-
88-
89-
- name: Restore Docker cache mounts
90-
uses: reproducible-containers/buildkit-cache-dance@v3
91-
with:
92-
builder: ${{ steps.setup-buildx.outputs.name }}
93-
cache-map: |
94-
{
95-
"docker-cache-uv": "/root/.cache/uv",
96-
"docker-cache-ivy2": "/root/.ivy2"
97-
}
98-
skip-extraction: ${{ steps.cache-primes.outputs.cache-hit }}
83+
${{ runner.os }}-buildx-worker-
9984
10085
- name: Build worker image
10186
uses: docker/build-push-action@v6
@@ -107,12 +92,20 @@ jobs:
10792
labels: ${{ steps.meta.outputs.labels }}
10893
pull: true
10994
push: true
110-
cache-to: type=gha,mode=max,scope=worker
111-
cache-from: type=gha,scope=worker
95+
cache-from: type=local,src=${{ runner.temp }}/.buildx-cache
96+
cache-to: type=local,dest=${{ runner.temp }}/.buildx-cache-new,mode=max,compression=zstd,compression-level=3
11297
platforms: ${{ env.PLATFORMS }}
11398
provenance: mode=max
11499
sbom: true
115100

101+
# Temp fix
102+
# https://github.com/docker/build-push-action/issues/252
103+
# https://github.com/moby/buildkit/issues/1896
104+
- name: Move cache
105+
run: |
106+
rm -rf ${{ runner.temp }}/.buildx-cache
107+
mv ${{ runner.temp }}/.buildx-cache-new ${{ runner.temp }}/.buildx-cache
108+
116109
- name: Convert README to Markdown
117110
uses: docker://pandoc/core:2.9
118111
with:

0 commit comments

Comments
 (0)