--- name: iOS app on: pull_request: paths: - .github/workflows/ios.yml - ios/.swiftformat - ios/**/*.swift - ios/**/*.xctestplan workflow_dispatch: jobs: check-formatting: name: Check formatting runs-on: macos-13 steps: - name: Install SwiftFormat run: | brew update brew upgrade swiftformat - name: Checkout repository uses: actions/checkout@v3 - name: Check formatting run: | swiftformat --version swiftformat --lint . test: name: Unit tests runs-on: macos-13 env: SOURCE_PACKAGES_PATH: .spm steps: - name: Checkout repository uses: actions/checkout@v3 - name: Configure cache uses: actions/cache@v3 with: path: ios/${{ env.SOURCE_PACKAGES_PATH }} key: ${{ runner.os }}-spm-${{ hashFiles('ios/**/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm- - name: Setup go-lang uses: actions/setup-go@v3 with: go-version: 1.19.5 - name: Configure Xcode uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '14.3' - name: Configure Rust run: rustup target add x86_64-apple-ios - name: Configure Xcode project run: | cp Base.xcconfig.template Base.xcconfig cp App.xcconfig.template App.xcconfig cp PacketTunnel.xcconfig.template PacketTunnel.xcconfig cp Screenshots.xcconfig.template Screenshots.xcconfig working-directory: ios/Configurations - name: Run tests uses: sersoft-gmbh/xcodebuild-action@v2 with: project: ios/MullvadVPN.xcodeproj scheme: MullvadVPN skip-testing: MullvadVPNScreenshots destination: platform=iOS Simulator,OS=16.4,name=iPhone 14 action: test cloned-source-packages-path: ios/${{ env.SOURCE_PACKAGES_PATH }}