-
Notifications
You must be signed in to change notification settings - Fork 210
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CI] Update iOS runtimes' download (#3265)
- Loading branch information
1 parent
e7a60a6
commit 59f4177
Showing
9 changed files
with
171 additions
and
69 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 |
---|---|---|
|
@@ -43,27 +43,17 @@ jobs: | |
- 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.3 | ||
os: macos-14 | ||
device: "iPhone 14 Pro Max" | ||
device: "iPhone 14 Pro" | ||
setup_runtime: true | ||
- ios: 15.5 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPhone 13" | ||
setup_runtime: true | ||
- ios: 14.5 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPhone SE (2nd generation)" | ||
setup_runtime: true | ||
- ios: 13.7 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPad Air (3rd generation)" | ||
device: "iPhone 13 Pro" | ||
setup_runtime: true | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
|
@@ -85,20 +75,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: ~/Downloads/*.dmg | ||
key: xcodes-runtime-ios-${{ matrix.ios }} | ||
restore-keys: xcodes-runtime-ios-${{ matrix.ios }} | ||
- name: Setup iOS ${{ matrix.ios }} Runtime | ||
SKIP_BREW_BOOTSTRAP: true | ||
- uses: ./.github/actions/setup-ios-runtime | ||
if: ${{ matrix.setup_runtime }} | ||
timeout-minutes: 60 | ||
run: | | ||
brew install xcodesorg/made/xcodes | ||
xcodes runtimes | ||
sudo xcodes runtimes install 'iOS ${{ matrix.ios }}' --keep-archive | ||
with: | ||
version: ${{ matrix.ios }} | ||
device: ${{ matrix.device }} | ||
- name: Launch Allure TestOps | ||
run: bundle exec fastlane allure_launch cron:true | ||
- name: Run UI Tests (Debug) | ||
|
@@ -143,27 +126,27 @@ jobs: | |
- ios: 17.4 | ||
xcode: 15.4 | ||
os: macos-14 | ||
device: "iPhone 14 Pro Max" | ||
device: "iPhone 14 Pro" | ||
setup_runtime: false | ||
- ios: 16.4 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPhone 14 Pro Max" | ||
device: "iPhone 14 Pro" | ||
setup_runtime: true | ||
- ios: 15.5 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPhone 13" | ||
device: "iPhone 13 Pro" | ||
setup_runtime: true | ||
- ios: 14.5 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPhone SE (2nd generation)" | ||
xcode: 14.2 | ||
os: macos-12 | ||
device: "iPhone 12 Pro" | ||
setup_runtime: true | ||
- ios: 13.7 | ||
xcode: 15.3 | ||
os: macos-14 | ||
device: "iPad Air (3rd generation)" | ||
xcode: 14.2 | ||
os: macos-12 | ||
device: "iPhone 11 Pro" | ||
setup_runtime: true | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
|
@@ -175,20 +158,12 @@ jobs: | |
- uses: ./.github/actions/bootstrap | ||
env: | ||
INSTALL_YEETD: true | ||
- name: Cache iOS Simulator Runtime | ||
uses: actions/cache@v4 | ||
id: runtime-cache | ||
with: | ||
path: ~/Downloads/*.dmg | ||
key: xcodes-runtime-ios-${{ matrix.ios }} | ||
restore-keys: xcodes-runtime-ios-${{ matrix.ios }} | ||
- name: Setup iOS ${{ matrix.ios }} Runtime | ||
- uses: ./.github/actions/setup-ios-runtime | ||
if: ${{ matrix.setup_runtime }} | ||
timeout-minutes: 60 | ||
run: | | ||
brew install xcodesorg/made/xcodes | ||
xcodes runtimes | ||
sudo xcodes runtimes install 'iOS ${{ matrix.ios }}' --keep-archive | ||
with: | ||
version: ${{ matrix.ios }} | ||
device: ${{ matrix.device }} | ||
- name: Run LLC Tests (Debug) | ||
run: bundle exec fastlane test device:"${{ matrix.device }} (${{ matrix.ios }})" cron:true | ||
timeout-minutes: 100 | ||
|
@@ -224,7 +199,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'" | ||
- name: Build LLC | ||
run: bundle exec fastlane test device:"iPhone 8" build_for_testing: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 |
---|---|---|
|
@@ -115,6 +115,7 @@ jobs: | |
env: | ||
INSTALL_YEETD: true | ||
SKIP_MINT_BOOTSTRAP: true | ||
SKIP_BREW_BOOTSTRAP: true | ||
- name: Run UI Tests (Debug) | ||
run: bundle exec fastlane test_ui device:"${{ env.IOS_SIMULATOR_DEVICE }}" skip_build:true record:${{ github.event.inputs.snapshots }} | ||
timeout-minutes: 60 | ||
|
@@ -158,6 +159,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 | ||
|
@@ -224,7 +226,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'" | ||
- name: Build LLC | ||
run: bundle exec fastlane test device:"iPhone 13" build_for_testing: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
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
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 |
Oops, something went wrong.