@@ -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