Browse Source

Merge pull request #761 from aya-rs/mac-broken-qemu

Fix macOS CI
Tamir Duberstein 1 year ago
parent
commit
47a09a4ec9
1 changed files with 10 additions and 11 deletions
  1. 10 11
      .github/workflows/ci.yml

+ 10 - 11
.github/workflows/ci.yml

@@ -188,12 +188,21 @@ jobs:
 
       - name: Install prerequisites
         if: runner.os == 'macOS'
+        # The xargs shipped on macOS always exits 0 with -P0, so we need GNU findutils.
+        #
+        # The tar shipped on macOS doesn't support --wildcards, so we need GNU tar.
+        #
         # The clang shipped on macOS doesn't support BPF, so we need LLVM from brew.
         #
         # We also need LLVM for bpf-linker, see comment below.
         run: |
           set -euxo pipefail
-          brew install findutils qemu dpkg pkg-config llvm
+          brew update
+          brew install dpkg findutils gnu-tar llvm pkg-config
+          # Workaround for https://github.com/Homebrew/homebrew-core/pull/139492.
+          brew reinstall qemu
+          echo /usr/local/opt/findutils/libexec/gnubin >> $GITHUB_PATH
+          echo /usr/local/opt/gnu-tar/libexec/gnubin >> $GITHUB_PATH
           echo /usr/local/opt/llvm/bin >> $GITHUB_PATH
 
       - name: bpf-linker
@@ -201,11 +210,6 @@ jobs:
         # NB: rustc doesn't ship libLLVM.so on macOS, so disable proxying (default feature).
         run: cargo install bpf-linker --git https://github.com/aya-rs/bpf-linker.git --no-default-features
 
-      - name: Alias gxargs as xargs
-        if: runner.os == 'macOS'
-        # macOS xargs always exits 0 with -P0.
-        run: mkdir xargs-is-gxargs && ln -s "$(which gxargs)" xargs-is-gxargs/xargs && echo "$PWD"/xargs-is-gxargs >> $GITHUB_PATH
-
       - name: Download debian kernels
         if: runner.arch == 'ARM64'
         run: |
@@ -232,11 +236,6 @@ jobs:
             linux-image-6.4.0-2-cloud-amd64-unsigned_6.4.4-3_amd64.deb \
           | xargs -0 -t -P0 -I {} wget -nd -nv -P test/.tmp/debian-kernels/amd64 ftp://ftp.us.debian.org/debian/pool/main/l/linux/{}
 
-      - name: Alias gtar as tar
-        if: runner.os == 'macOS'
-        # macOS tar doesn't support --wildcards which we use below.
-        run: mkdir tar-is-gtar && ln -s "$(which gtar)" tar-is-gtar/tar && echo "$PWD"/tar-is-gtar >> $GITHUB_PATH
-
       - name: Extract debian kernels
         run: |
           set -euxo pipefail