Skip to content

Commit f1d307a

Browse files
committed
Use OCI layout for build cache
1 parent d134f72 commit f1d307a

File tree

1 file changed

+35
-26
lines changed

1 file changed

+35
-26
lines changed

.github/workflows/cd.yml

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,19 @@ jobs:
5959
targets: debian
6060
set: |
6161
debian.platform=${{ matrix.platform }}
62-
debian.tags=local/latex-devcontainer:${{ matrix.arch_name }}
63-
debian.output=type=docker,dest=/tmp/image-${{ matrix.arch_name }}.tar
62+
debian.output=type=oci,dest=/tmp/oci-${{ matrix.arch_name }}
6463
65-
- name: Split ${{ matrix.arch_name }} image
64+
- name: Compress and split OCI layout cache
6665
run: |
67-
split -b 2G /tmp/image-${{ matrix.arch_name }}.tar /tmp/image-${{ matrix.arch_name }}.tar.part.
68-
ls -la /tmp/image-${{ matrix.arch_name }}.tar.part.*
66+
tar -czf /tmp/oci-${{ matrix.arch_name }}.tar.gz -C /tmp oci-${{ matrix.arch_name }}
67+
split -b 2G /tmp/oci-${{ matrix.arch_name }}.tar.gz /tmp/oci-${{ matrix.arch_name }}.tar.gz.part.
68+
ls -la /tmp/oci-${{ matrix.arch_name }}.tar.gz.part.*
6969
70-
- name: Upload ${{ matrix.arch_name }} artifacts
70+
- name: Upload ${{ matrix.arch_name }} OCI layout
7171
uses: actions/upload-artifact@v4
7272
with:
73-
name: docker-image-${{ matrix.arch_name }}
74-
path: /tmp/image-${{ matrix.arch_name }}.tar.part.*
73+
name: oci-layout-${{ matrix.arch_name }}
74+
path: /tmp/oci-${{ matrix.arch_name }}.tar.gz.part.*
7575

7676
create-manifest:
7777
needs: [build]
@@ -104,37 +104,46 @@ jobs:
104104
image: tonistiigi/binfmt:qemu-v9.2.2
105105
- uses: docker/setup-buildx-action@v3
106106

107-
- name: Download AMD64 artifacts
107+
- name: Download and extract AMD64 OCI layout cache
108108
uses: actions/download-artifact@v4
109109
with:
110-
name: docker-image-amd64
111-
path: /tmp/amd64/
112-
113-
- name: Reassemble AMD64 image
110+
name: oci-layout-amd64
111+
path: /tmp/amd64-artifacts/
112+
113+
- name: Reassemble and extract AMD64 OCI layout
114114
run: |
115-
cat /tmp/amd64/image-amd64.tar.part.* > /tmp/image-amd64.tar
116-
docker load -i /tmp/image-amd64.tar
117-
rm -rf /tmp/amd64/ /tmp/image-amd64.tar
118-
119-
- name: Download ARM64 artifacts
115+
cd /tmp/amd64-artifacts
116+
cat oci-amd64.tar.gz.part.* > /tmp/oci-amd64.tar.gz
117+
cd /tmp
118+
rm -rf /tmp/amd64-artifacts
119+
tar -xzf oci-amd64.tar.gz
120+
rm -f /tmp/oci-amd64.tar.gz
121+
122+
- name: Download and extract ARM64 OCI layout
120123
uses: actions/download-artifact@v4
121124
with:
122-
name: docker-image-arm64
123-
path: /tmp/arm64/
124-
125-
- name: Reassemble ARM64 image
125+
name: oci-layout-arm64
126+
path: /tmp/arm64-artifacts/
127+
128+
- name: Reassemble and extract ARM64 OCI layout
126129
run: |
127-
cat /tmp/arm64/image-arm64.tar.part.* > /tmp/image-arm64.tar
128-
docker load -i /tmp/image-arm64.tar
129-
rm -rf /tmp/arm64/ /tmp/image-arm64.tar
130+
cd /tmp/arm64-artifacts
131+
cat oci-arm64.tar.gz.part.* > /tmp/oci-arm64.tar.gz
132+
cd /tmp
133+
rm -rf /tmp/arm64-artifacts
134+
tar -xzf oci-arm64.tar.gz
135+
rm -f /tmp/oci-arm64.tar.gz
130136
131137
- uses: docker/login-action@v3
132138
with:
133139
registry: ${{ env.REGISTRY }}
134140
username: ${{ github.actor }}
135141
password: ${{ secrets.GITHUB_TOKEN }}
136142

137-
- name: Push multi-arch manifest with bake
143+
- name: Push multi-arch manifest using OCI cache
138144
uses: docker/bake-action@v6
139145
with:
140146
push: true
147+
set: |
148+
*.cache-from=type=oci,src=/tmp/oci-amd64
149+
*.cache-from=type=oci,src=/tmp/oci-arm64

0 commit comments

Comments
 (0)