From a993ef0c398ec053a644f744abd3c4e1e6c508bb Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 20 Feb 2024 11:02:53 -0800 Subject: [PATCH] CI: Test aarch64-apple-ios in simulator. --- .github/workflows/tests.yml | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 065fa3ef..014797a6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -87,18 +87,43 @@ jobs: ios-tests: name: iOS Simulator Test - runs-on: macos-12 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12, macos-14] + # Only test on stable to reduce macOS CI jobs + toolchain: [stable] + include: + # The Aarch64 device simulator doesn't seem to work on an x86-64 host + # and the x86_64 device simulator doesn't seem to work on an Aarch64 + # host, at least within GitHub Actions. + - os: macos-12 + target: x86_64-apple-ios + ios_platform: auto-ios-x86_64 + - os: macos-14 + target: aarch64-apple-ios-sim + ios_platform: auto-ios-aarch64-sim steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable with: - targets: x86_64-apple-ios + targets: ${{ matrix.target }} + # There is no precompiled cargo-dinghy for Aarch64. The precompiled + # x86_64 binary runs on ARM64 macOS via Rosetta 2, but it fails to + # correctly interface with macOS toolchain. - name: Install precompiled cargo-dinghy + if: ${{ matrix.target == 'x86_64-apple-ios' }} run: | VERSION=0.6.2 URL="https://github.com/sonos/dinghy/releases/download/${VERSION}/cargo-dinghy-macos-${VERSION}.tgz" wget -O - $URL | tar -xz --strip-components=1 -C ~/.cargo/bin - cargo dinghy --version + - name: cargo install cargo-dinghy + if: ${{ matrix.target == 'aarch64-apple-ios-sim' }} + run: | + VERSION=0.6.2 + cargo install cargo-dinghy --version ${VERSION} + - name: Check cargo-dinghy version. + run: cargo dinghy --version - name: Setup Simulator # Use the first installed iOS runtime and the first (i.e. oldest) supported iPhone device. run: | @@ -113,7 +138,7 @@ jobs: echo "device=$SIM_ID" >> $GITHUB_ENV - uses: Swatinem/rust-cache@v2 - name: Run tests - run: cargo dinghy -d ${{ env.device }} test + run: cargo dinghy -p ${{ matrix.ios_platform }} -d ${{ env.device }} test windows-tests: name: Windows Test