[llvm] [Github] Make Windows container use zstd (PR #167022)

Aiden Grossman via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 7 13:20:07 PST 2025


https://github.com/boomanaiden154 created https://github.com/llvm/llvm-project/pull/167022

This enables much faster image unpack times. We benchmarked 20-30% improvements when testing this initially. Use skopeo to copy the image as it just works over the docker-archive/OCI container formats and does not need to unpack the image to upload it.

>From b7b38247e016ed02c60ccd48e9a67b38da003de2 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 7 Nov 2025 21:18:19 +0000
Subject: [PATCH] [Github] Make Windows container use zstd

This enables much faster image unpack times. We benchmarked 20-30%
improvements when testing this initially. Use skopeo to copy the image
as it just works over the docker-archive/OCI container formats and does
not need to unpack the image to upload it.
---
 .../workflows/build-ci-container-windows.yml  | 22 +++++++++++--------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-ci-container-windows.yml b/.github/workflows/build-ci-container-windows.yml
index b6c46b70030ab..1be644077dca4 100644
--- a/.github/workflows/build-ci-container-windows.yml
+++ b/.github/workflows/build-ci-container-windows.yml
@@ -51,12 +51,12 @@ jobs:
           retention-days: 14
   
   push-ci-container:
-    if: github.event_name == 'push'
+    #if: github.event_name == 'push'
     needs:
       - build-ci-container-windows
-    permissions:
-      packages: write
-    runs-on: windows-2022
+    #permissions:
+    #  packages: write
+    runs-on: ubuntu-24.04
     env:
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
     steps:
@@ -66,8 +66,12 @@ jobs:
           name: container
       - name: Push Container
         run: |
-          docker load -i ${{ needs.build-ci-container-windows.outputs.container-filename }}
-          docker tag ${{ needs.build-ci-container-windows.outputs.container-name-tag }} ${{ needs.build-ci-container-windows.outputs.container-name }}:latest
-          docker login -u ${{ github.actor }} -p $env:GITHUB_TOKEN ghcr.io
-          docker push ${{ needs.build-ci-container-windows.outputs.container-name-tag }}
-          docker push ${{ needs.build-ci-container-windows.outputs.container-name }}:latest
+          sudo apt-get update
+          sudo apt-get install -y skopeo
+          skopeo login -u ${{ github.actor }} -p $env:GITHUB_TOKEN ghcr.io
+          skopeo copy ${{ needs.build-ci-container-windows.outputs.container-filename }} \
+            --additional-tags=latest \
+            --dest-compress-format zstd \
+            --dest-force-compress-format \
+            oci:/tmp/blah.tar
+            #docker://${{ needs.build-ci-container-windows.outputs.container-name-tag }}



More information about the llvm-commits mailing list