ci: Make MacOS builds only run if other things pass (#5872)

diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml
index 45bbabf..38dd1b3 100644
--- a/.github/workflows/bazel.yml
+++ b/.github/workflows/bazel.yml
@@ -13,7 +13,7 @@
     timeout-minutes: 120
     strategy:
       matrix:
-        os: [ubuntu-latest, macos-latest, windows-2019]
+        os: [ubuntu-latest, windows-2019]
 
     runs-on: ${{matrix.os}}
 
@@ -32,3 +32,26 @@
         run: bazel --output_user_root=~/.bazel/cache build //...
       - name: Test All
         run: bazel --output_user_root=~/.bazel/cache test //...
+
+  # iOS is 10x expensive to run on GitHub machines, so only run if we know something else passed
+  # The steps are unfortunately duplicated because github actions requires 2 jobs for a dependency
+  build-macos:
+    needs: build
+    timeout-minutes: 120
+    runs-on: macos-latest
+
+    steps:
+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+        with:
+          fetch-depth: '0'
+      - name: Download dependencies
+        run: python3 utils/git-sync-deps
+      - name: Mount Bazel cache
+        uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
+        with:
+          path: ~/.bazel/cache
+          key: bazel-cache-${{ runner.os }}
+      - name: Build All
+        run: bazel --output_user_root=~/.bazel/cache build //...
+      - name: Test All
+        run: bazel --output_user_root=~/.bazel/cache test //...
diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml
index 961d273..36de27b 100644
--- a/.github/workflows/ios.yml
+++ b/.github/workflows/ios.yml
@@ -2,14 +2,17 @@
 permissions:
   contents: read
 
-on: [push, pull_request, workflow_dispatch]
+on:
+  workflow_run:
+    # iOS is 10x expensive to run on GitHub machines, so only run if we know something else passed
+    workflows: ["Wasm Build"]
+    types:
+      - completed
 
 jobs:
   build:
-    runs-on: ${{ matrix.os }}
-    strategy:
-        matrix:
-          os: [ macos-latest ]
+    runs-on: macos-latest
+    if: ${{ github.event.workflow_run.conclusion == 'success' }}
     steps:
         - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         - uses: lukka/get-cmake@b516803a3c5fac40e2e922349d15cdebdba01e60 # v3.30.5