Skip to content

Commit 2d011e9

Browse files
authored
👷 Add: ios-pr-test.yml
1 parent 5201321 commit 2d011e9

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

.github/workflows/ios-pr-test.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: iOS PR test workflow
2+
3+
on:
4+
pull_request:
5+
branches: [ "iOS/dev" ]
6+
7+
jobs:
8+
build:
9+
name: Build and Test default scheme using any available iPhone simulator
10+
runs-on: macos-latest
11+
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v3
15+
- name: Set Default Scheme
16+
run: |
17+
cd iOS/Layover
18+
scheme_list=$(xcodebuild -list -json | tr -d "\n")
19+
default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]")
20+
echo $default | cat >default
21+
echo Using default scheme: $default
22+
- name: Build
23+
env:
24+
scheme: ${{ 'default' }}
25+
platform: ${{ 'iOS Simulator' }}
26+
run: |
27+
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959)
28+
device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//"`
29+
if [ $scheme = default ]; then scheme=$(cat default); fi
30+
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
31+
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
32+
xcodebuild build-for-testing -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"
33+
- name: Test
34+
env:
35+
scheme: ${{ 'default' }}
36+
platform: ${{ 'iOS Simulator' }}
37+
run: |
38+
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959)
39+
device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//"`
40+
if [ $scheme = default ]; then scheme=$(cat default); fi
41+
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
42+
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
43+
xcodebuild test-without-building -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"

0 commit comments

Comments
 (0)