summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBug Magnet <marco.nikic@mullvad.net>2024-02-07 15:21:25 +0100
committerBug Magnet <marco.nikic@mullvad.net>2024-02-07 15:21:25 +0100
commit00de7637fd8fe8480022489af3c0cee2dc706d30 (patch)
tree527f74656ac590a81e4f10f6de0a15014142e8f1
parent808a14211fb22211bbbc6450e54f8fc0e8e75615 (diff)
parentfdbe0741b3381cad1d3349fc882a7a4397542298 (diff)
downloadmullvadvpn-00de7637fd8fe8480022489af3c0cee2dc706d30.tar.xz
mullvadvpn-00de7637fd8fe8480022489af3c0cee2dc706d30.zip
Merge branch 'exercise-custom-schemas-in-ci-ios-448'
-rw-r--r--.github/workflows/ios-validate-build-schemas.yml82
1 files changed, 82 insertions, 0 deletions
diff --git a/.github/workflows/ios-validate-build-schemas.yml b/.github/workflows/ios-validate-build-schemas.yml
new file mode 100644
index 0000000000..cd7485a4cc
--- /dev/null
+++ b/.github/workflows/ios-validate-build-schemas.yml
@@ -0,0 +1,82 @@
+---
+name: iOS Validate build schemas
+on:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - main
+ paths:
+ - .github/workflows/ios.yml
+ - .github/workflows/ios-validate-build-schemas.yml
+ - ios/.swiftformat
+ - ios/**/*.swift
+ - ios/**/*.xctestplan
+ workflow_dispatch:
+jobs:
+ test:
+ if: github.event.pull_request.merged == true
+ name: Validate build schemas
+ runs-on: macos-13-xlarge
+ 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: 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 aarch64-apple-ios-sim 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
+ cp Api.xcconfig.template Api.xcconfig
+ working-directory: ios/Configurations
+
+ - name: Install xcbeautify
+ run: |
+ brew update
+ brew install xcbeautify
+
+ - name: Run build validation for Staging and MockRelease configurations
+ run: |
+ set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
+ -project MullvadVPN.xcodeproj \
+ -scheme MullvadVPN \
+ -configuration MockRelease \
+ -destination "platform=iOS Simulator,name=iPhone 15" \
+ -clonedSourcePackagesDirPath "$SOURCE_PACKAGES_PATH" \
+ build
+ set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
+ -project MullvadVPN.xcodeproj \
+ -scheme MullvadVPN \
+ -configuration Staging \
+ -destination "platform=iOS Simulator,name=iPhone 15" \
+ -clonedSourcePackagesDirPath "$SOURCE_PACKAGES_PATH" \
+ build
+ working-directory: ios/