From 5d0825828cc69bc60bcadb2da71cd3911476cadf Mon Sep 17 00:00:00 2001 From: Abiola Ibrahim Date: Wed, 9 Oct 2024 21:03:29 +0100 Subject: [PATCH 1/3] ci: use older qemu version Signed-off-by: Abiola Ibrahim --- .github/hack/brew-install-version.sh | 34 ++++++++++++++++ .github/workflows/integration.yml | 59 ++++++++++++++++++++++++++-- 2 files changed, 89 insertions(+), 4 deletions(-) create mode 100755 .github/hack/brew-install-version.sh diff --git a/.github/hack/brew-install-version.sh b/.github/hack/brew-install-version.sh new file mode 100755 index 00000000..fbd6028e --- /dev/null +++ b/.github/hack/brew-install-version.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# This script only works for formulas in the homebrew-core. +# It assumes the homebrew-core has been checked out into ./homebrew-core. +# It only needs commit messages, so the checkout can be filtered with tree:0. + +set -eu -o pipefail + +FORMULA=$1 +VERSION=$2 + +export HOMEBREW_NO_AUTO_UPDATE=1 +export HOMEBREW_NO_INSTALL_UPGRADE=1 +export HOMEBREW_NO_INSTALL_CLEANUP=1 + +TAP=lima/tap +if ! brew tap | grep -q "^${TAP}\$"; then + brew tap-new "$TAP" +fi + +# Get the latest commit id for the commit that updated this bottle +SHA=$(git -C homebrew-core log --max-count 1 --grep "^${FORMULA}: update ${VERSION} bottle" --format="%H") +if [[ -z $SHA ]]; then + echo "${FORMULA} ${VERSION} not found" + exit 1 +fi + +OUTPUT="$(brew --repo "$TAP")/Formula/${FORMULA}.rb" +RAW="https://raw.githubusercontent.com/Homebrew/homebrew-core" +curl -s "${RAW}/${SHA}/Formula/${FORMULA::1}/${FORMULA}.rb" -o "$OUTPUT" + +if brew ls -1 | grep -q "^${FORMULA}\$"; then + brew uninstall "$FORMULA" --ignore-dependencies +fi +brew install "${TAP}/${FORMULA}" diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index d89e95c1..930c486c 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -32,11 +32,22 @@ jobs: with: go-version: "1.23" + - name: Fetch homebrew-core commit messages + uses: actions/checkout@v4 + with: + # needed by ./hack/brew-install-version.sh + repository: homebrew/homebrew-core + path: homebrew-core + fetch-depth: 0 + filter: tree:0 + - name: Install CLI deps env: HOMEBREW_NO_AUTO_UPDATE: "1" + HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | + ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima - name: Build and Install @@ -63,7 +74,6 @@ jobs: kubernetes-containerd: runs-on: macos-13 - needs: kubernetes-docker steps: - uses: actions/checkout@v4 @@ -72,11 +82,22 @@ jobs: with: go-version: "1.23" + - name: Fetch homebrew-core commit messages + uses: actions/checkout@v4 + with: + # needed by ./hack/brew-install-version.sh + repository: homebrew/homebrew-core + path: homebrew-core + fetch-depth: 0 + filter: tree:0 + - name: Install CLI deps env: HOMEBREW_NO_AUTO_UPDATE: "1" + HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | + ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima - name: Build and Install @@ -103,7 +124,6 @@ jobs: docker: runs-on: macos-13 - needs: kubernetes-containerd steps: - uses: actions/checkout@v4 @@ -112,11 +132,22 @@ jobs: with: go-version: "1.23" + - name: Fetch homebrew-core commit messages + uses: actions/checkout@v4 + with: + # needed by ./hack/brew-install-version.sh + repository: homebrew/homebrew-core + path: homebrew-core + fetch-depth: 0 + filter: tree:0 + - name: Install CLI deps env: HOMEBREW_NO_AUTO_UPDATE: "1" + HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | + ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima - name: Build and Install @@ -152,7 +183,6 @@ jobs: containerd: runs-on: macos-13 - needs: docker steps: - uses: actions/checkout@v4 @@ -161,11 +191,22 @@ jobs: with: go-version: "1.23" + - name: Fetch homebrew-core commit messages + uses: actions/checkout@v4 + with: + # needed by ./hack/brew-install-version.sh + repository: homebrew/homebrew-core + path: homebrew-core + fetch-depth: 0 + filter: tree:0 + - name: Install CLI deps env: HOMEBREW_NO_AUTO_UPDATE: "1" + HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | + ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima - name: Build and Install @@ -201,7 +242,6 @@ jobs: incus: runs-on: macos-13 - needs: containerd steps: - uses: actions/checkout@v4 @@ -210,11 +250,22 @@ jobs: with: go-version: "1.23" + - name: Fetch homebrew-core commit messages + uses: actions/checkout@v4 + with: + # needed by ./hack/brew-install-version.sh + repository: homebrew/homebrew-core + path: homebrew-core + fetch-depth: 0 + filter: tree:0 + - name: Install CLI deps env: HOMEBREW_NO_AUTO_UPDATE: "1" + HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | + ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima incus - name: Build and Install From 79e28ff0239c7eba22e2f9a2b84f52de1dfcd230 Mon Sep 17 00:00:00 2001 From: Abiola Ibrahim Date: Wed, 9 Oct 2024 21:12:14 +0100 Subject: [PATCH 2/3] ci: fix order of qemu installation Signed-off-by: Abiola Ibrahim --- .github/workflows/integration.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 930c486c..d24f599f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -47,8 +47,9 @@ jobs: HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | - ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima + brew uninstall qemu + ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install run: make && sudo make install @@ -97,8 +98,9 @@ jobs: HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | - ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima + brew uninstall qemu + ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install run: make && sudo make install @@ -147,8 +149,9 @@ jobs: HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | - ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima + brew uninstall qemu + ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install run: make && sudo make install @@ -206,8 +209,9 @@ jobs: HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | - ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima + brew uninstall qemu + ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install run: make && sudo make install @@ -265,8 +269,9 @@ jobs: HOMEBREW_NO_INSTALL_UPGRADE: "1" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | - ./.github/hack/brew-install-version.sh qemu 8.2.1 brew install --overwrite python@3.12 kubectl docker coreutils lima incus + brew uninstall qemu + ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install run: make && sudo make install From 3786ec261a6b154d8bb2fd861e23ebc03bb08b76 Mon Sep 17 00:00:00 2001 From: Abiola Ibrahim Date: Wed, 9 Oct 2024 21:17:59 +0100 Subject: [PATCH 3/3] ci: fix removal of qemu Signed-off-by: Abiola Ibrahim --- .github/workflows/integration.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index d24f599f..648addf3 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -48,7 +48,7 @@ jobs: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | brew install --overwrite python@3.12 kubectl docker coreutils lima - brew uninstall qemu + brew uninstall --ignore-dependencies qemu ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install @@ -99,7 +99,7 @@ jobs: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | brew install --overwrite python@3.12 kubectl docker coreutils lima - brew uninstall qemu + brew uninstall --ignore-dependencies qemu ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install @@ -150,7 +150,7 @@ jobs: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | brew install --overwrite python@3.12 kubectl docker coreutils lima - brew uninstall qemu + brew uninstall --ignore-dependencies qemu ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install @@ -210,7 +210,7 @@ jobs: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | brew install --overwrite python@3.12 kubectl docker coreutils lima - brew uninstall qemu + brew uninstall --ignore-dependencies qemu ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install @@ -270,7 +270,7 @@ jobs: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1" run: | brew install --overwrite python@3.12 kubectl docker coreutils lima incus - brew uninstall qemu + brew uninstall --ignore-dependencies qemu ./.github/hack/brew-install-version.sh qemu 8.2.1 - name: Build and Install