-
Notifications
You must be signed in to change notification settings - Fork 87
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
82bd989
commit 28be408
Showing
8 changed files
with
139 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: 'Setup iOS Runtime' | ||
description: 'Download and Install requested iOS Runtime' | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Cache iOS Simulator Runtime | ||
uses: actions/cache@v4 | ||
id: runtime-cache | ||
with: | ||
path: ./*.dmg | ||
key: ipsw-runtime-ios-${{ inputs.version }} | ||
restore-keys: ipsw-runtime-ios-${{ inputs.version }} | ||
- name: Setup iOS Simulator Runtime | ||
shell: bash | ||
run: | | ||
brew install blacktop/tap/ipsw | ||
bundle exec fastlane install_runtime ios:${{ inputs.version }} | ||
xcrun simctl list runtimes | ||
- name: Create Custom iOS Simulator | ||
shell: bash | ||
run: | | ||
ios_version_dash=$(echo "${{ inputs.version }}" | tr '.' '-') # ex: 16.4 -> 16-4 | ||
xcrun simctl create custom-test-device "${{ inputs.device }}" "com.apple.CoreSimulator.SimRuntime.iOS-$ios_version_dash" | ||
xcrun simctl list devices ${{ inputs.version }} | ||
inputs: | ||
version: | ||
description: "iOS Runtime Version" | ||
required: true | ||
device: | ||
description: "iOS Simulator Model" | ||
required: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,16 +17,14 @@ env: | |
jobs: | ||
build-test-app-and-frameworks: | ||
name: Build Test App and Frameworks | ||
runs-on: macos-13 | ||
runs-on: macos-14 | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/ruby-cache | ||
- uses: ./.github/actions/xcode-cache | ||
- name: Build | ||
run: bundle exec fastlane build_test_app_and_frameworks | ||
timeout-minutes: 60 | ||
env: | ||
XCODE_VERSION: "15.2" # Should match the minimum version in dependent jobs | ||
- uses: actions/upload-artifact@v4 | ||
if: success() | ||
with: | ||
|
@@ -42,16 +40,16 @@ jobs: | |
strategy: | ||
matrix: | ||
include: | ||
- ios: 17.2 | ||
xcode: 15.2 | ||
- ios: 17.4 | ||
xcode: 15.4 | ||
os: macos-14 | ||
device: "iPhone 15 Pro" | ||
device: "iPhone 14 Pro" | ||
setup_runtime: false | ||
- ios: 16.4 | ||
xcode: 15.2 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPhone 14 Pro Max" | ||
setup_runtime: false | ||
device: "iPhone 14 Pro" | ||
setup_runtime: true | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
env: | ||
|
@@ -70,16 +68,13 @@ jobs: | |
INSTALL_ALLURE: true | ||
INSTALL_YEETD: true | ||
SKIP_MINT_BOOTSTRAP: true | ||
- name: Cache iOS Simulator Runtime | ||
uses: actions/cache@v4 | ||
id: runtime-cache | ||
with: | ||
path: ~/Library/Caches/XcodeInstall/ | ||
key: runtime-ios-${{ matrix.ios }} | ||
restore-keys: runtime-ios-${{ matrix.ios }} | ||
- name: Setup iOS ${{ matrix.ios }} Runtime | ||
SKIP_BREW_BOOTSTRAP: true | ||
- uses: ./.github/actions/setup-ios-runtime | ||
if: ${{ matrix.setup_runtime }} | ||
run: bundle exec fastlane install_sim ios:"${{ matrix.ios }}" | ||
timeout-minutes: 60 | ||
with: | ||
version: ${{ matrix.ios }} | ||
device: ${{ matrix.device }} | ||
- name: Launch Allure TestOps | ||
run: bundle exec fastlane allure_launch cron:true | ||
- name: Run UI Tests (Debug) | ||
|
@@ -156,7 +151,7 @@ jobs: | |
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/ruby-cache | ||
- name: List Xcode versions xcversion sees | ||
- name: List Xcode versions | ||
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'" | ||
timeout-minutes: 25 | ||
- name: Build SwiftUI | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -127,6 +127,7 @@ jobs: | |
INSTALL_ALLURE: true | ||
INSTALL_YEETD: true | ||
SKIP_MINT_BOOTSTRAP: true | ||
SKIP_BREW_BOOTSTRAP: true | ||
- name: Run UI Tests (Debug) | ||
run: bundle exec fastlane test_e2e_mock device:"${{ env.IOS_SIMULATOR_DEVICE }}" batch:'${{ matrix.batch }}' test_without_building:true | ||
timeout-minutes: 100 | ||
|
@@ -207,7 +208,7 @@ jobs: | |
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/ruby-cache | ||
- name: List Xcode versions xcversion sees | ||
- name: List Xcode versions | ||
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'" | ||
timeout-minutes: 25 | ||
- name: Build SwiftUI | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/bin/bash -e | ||
# Copyright 2024 Namespace Labs Inc. Licensed under the MIT License. | ||
|
||
log() { echo "👉 ${1}" >&2; } | ||
die() { log "${1}"; exit 1; } | ||
[ $# -eq 1 ] || die "usage: $0 path/to/runtime.dmg" | ||
|
||
dmg=$1 | ||
mountpoint=$(mktemp -d) | ||
staging=$(mktemp -d) | ||
|
||
cleanup() { | ||
if [ -d "$staging" ]; then | ||
set +e | ||
log "Removing $staging..." | ||
rm -r "$staging" | ||
log "Unmounting $mountpoint..." | ||
hdiutil detach "$mountpoint" >&2 | ||
fi | ||
|
||
if [ -d "$mountpoint" ]; then | ||
log "Removing $mountpoint..." | ||
rmdir "$mountpoint" | ||
fi | ||
} | ||
trap cleanup EXIT | ||
|
||
log "Mounting $dmg on $mountpoint..." | ||
hdiutil attach "$dmg" -mountpoint "$mountpoint" >&2 | ||
|
||
if ! ls "$mountpoint"/*.pkg >/dev/null 2>&1; then | ||
log "Detected a modern volume runtime; installing with simctl..." | ||
xcrun simctl runtime add "$1" | ||
exit 0 | ||
fi | ||
|
||
log "Detected packaged runtime." | ||
|
||
bundle=$(echo "$mountpoint"/*.pkg) | ||
basename=$(basename "$bundle") | ||
sdkname=${basename%.*} | ||
log "Found package $bundle (sdk $sdkname)." | ||
|
||
log "Expanding package $bundle to $staging/expanded..." | ||
pkgutil --expand "$bundle" "$staging/expanded" | ||
|
||
dest=/Library/Developer/CoreSimulator/Profiles/Runtimes/$sdkname.simruntime | ||
# The package would try to install itself into volume root; this is wrong. | ||
log "Rewriting package install location to $dest..." | ||
sed -I '' "s|<pkg-info|<pkg-info install-location=\"$dest\"|" "$staging/expanded/PackageInfo" | ||
|
||
log "Re-assembling the package $staging/$basename..." | ||
pkgutil --flatten "$staging/expanded" "$staging/$basename" | ||
|
||
log "Installing $staging/$basename..." | ||
sudo installer -pkg "$staging/$basename" -target / | ||
|
||
version=$(plutil -extract CFBundleName raw "$dest/Contents/Info.plist") | ||
log "Installed $version." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
|
||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=180 | ||
FASTLANE_XCODEBUILD_SETTINGS_RETRIES=10 | ||
FASTLANE_SKIP_ACTION_SUMMARY=true | ||
FASTLANE_HIDE_PLUGINS_TABLE=true | ||
FASTLANE_SKIP_UPDATE_CHECK=true | ||
FASTLANE_HIDE_CHANGELOG=true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters