Ios/20250813 #2505
Workflow file for this run
This file contains hidden or 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
name: iOS CI | |
on: | |
push: | |
branches: | |
- master | |
- release | |
- develop | |
tags: | |
- '**' | |
paths-ignore: | |
- '**.md' | |
- '**.yml' | |
pull_request: | |
branches: | |
- master | |
- release | |
- develop | |
jobs: | |
build: | |
runs-on: [macos-15] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 21 | |
- name: Set Default Scheme | |
working-directory: ./iosApp | |
run: | | |
scheme_list=$(xcodebuild -list -json | tr -d "\n") | |
default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]") | |
echo $default | cat >default | |
echo Using default scheme: $default | |
- name: Print available simulators | |
run: xcrun simctl list devices | |
- name: Build | |
working-directory: ./iosApp | |
env: | |
scheme: ${{ 'default' }} | |
platform: ${{ 'iOS Simulator' }} | |
run: | | |
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959) | |
device=$(xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//") | |
echo "Selected device: $device" | |
os=$(xcrun simctl list devices | grep "$device (" | grep -oE 'iOS [0-9.]+' | sort -V | tail -1 | cut -d" " -f2) | |
echo "Selected OS: $os" | |
if [ -z "$os" ]; then | |
echo "Failed to detect iOS version for device: $device" | |
exit 1 | |
fi | |
if [ $scheme = default ]; then scheme=$(cat default); fi | |
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi | |
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'` | |
xcodebuild build-for-testing -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device,OS=$os" |