From 7fc7726584c65461b977e1d38bb0d51a017407a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Em=C4=ABls?= Date: Wed, 8 Nov 2023 14:12:10 +0100 Subject: [PATCH 1/2] Use bigger runners and yeetd --- .github/workflows/ios.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 25489032ffa9..5f4342002dc0 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -11,7 +11,7 @@ on: jobs: check-formatting: name: Check formatting - runs-on: macos-13 + runs-on: macos-13-xlarge steps: - name: Install SwiftFormat run: | @@ -29,20 +29,21 @@ jobs: swiftlint: name: Run swiftlint - runs-on: macos-13 + runs-on: macos-13-xlarge steps: - name: Checkout repository uses: actions/checkout@v3 - name: Run swiftlint run: | + brew install swiftlint swiftlint --version swiftlint --reporter github-actions-logging working-directory: ios test: name: Unit tests - runs-on: macos-13 + runs-on: macos-13-xlarge env: SOURCE_PACKAGES_PATH: .spm steps: @@ -62,12 +63,17 @@ jobs: with: go-version: 1.19.5 + - name: Set up yeetd to workaround XCode being slow in CI + run: | + wget https://github.com/biscuitehh/yeetd/releases/download/1.0/yeetd-normal.pkg + sudo installer -pkg yeetd-normal.pkg -target / + yeetd & - name: Configure Xcode uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '15.0.1' - name: Configure Rust - run: rustup target add x86_64-apple-ios + run: rustup target add aarch64-apple-ios-sim - name: Configure Xcode project run: | From 7704e46b1c8febc7410feb498c00e9818e198043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Em=C4=ABls?= Date: Thu, 9 Nov 2023 14:36:19 +0100 Subject: [PATCH 2/2] Remove offending test --- ios/PacketTunnelCoreTests/PacketTunnelActorTests.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ios/PacketTunnelCoreTests/PacketTunnelActorTests.swift b/ios/PacketTunnelCoreTests/PacketTunnelActorTests.swift index e17f48c3302c..34a6fe34787d 100644 --- a/ios/PacketTunnelCoreTests/PacketTunnelActorTests.swift +++ b/ios/PacketTunnelCoreTests/PacketTunnelActorTests.swift @@ -302,7 +302,12 @@ final class PacketTunnelActorTests: XCTestCase { await fulfillment(of: [disconnectedStateExpectation, didStopObserverExpectation], timeout: 1) } - func testSetErrorStateGetsCancelledWhenStopping() async throws { + // FIXME: Reconsider if this test should exist. As it stands currently, it + // relies the packet tunnel process processing app message calls and a + // `stopTunnel()` call in a particular, deterministic order, which makes it + // unreliable. In reality, we cannot guarantee the order between those + // calls, and it fails almost reliably on low core count VMs. + func setErrorStateGetsCancelledWhenStopping() async throws { let actor = PacketTunnelActor.mock() let connectingStateExpectation = expectation(description: "Connecting state") let disconnectedStateExpectation = expectation(description: "Disconnected state")