77# - INPUT_OSVERSION optional
88
99# Step outputs produced:
10- # - parsed-workspace-path
11- # - parsed-scheme
12- # - parsed-platform
13- # - parsed-platform-regex
10+ # - parsed-workspace-path Relative path to .xcworkspace file from repo root
11+ # - parsed-scheme Xcode scheme name
12+ # - parsed-platform Platform string (ie: "iOS Simulator") which can be used verbatim in `xcodebuild destination="platform=X"` in place of X
13+ # - parsed-platform-short Platform short name (ie: "iOS")
14+ # - parsed-platform-regex Platform name regex used when parsing simulator list output from `xcodebuild -showdestinations``
1415# - parsed-device-regex
1516# - parsed-os-version-regex
1617
@@ -42,121 +43,121 @@ if [[ -n $OSVERSION_REGEX ]]; then echo "Using OS version regex: $OSVERSION_REGE
4243INPUT_TARGET_LOWERCASE=$( tr ' [:upper:]' ' [:lower:]' <<< " $INPUT_TARGET" )
4344case $INPUT_TARGET_LOWERCASE in
4445 ios)
45- SIMPLATFORM =" iOS"
46+ SIMPLATFORM_SHORT =" iOS"
4647 SIMPLATFORM_REGEX=" iOS"
4748 SIMDEVICE_REGEX=" iPhone\s\d{2}\s"
4849 ;;
4950
5051 tvos)
51- SIMPLATFORM =" tvOS"
52+ SIMPLATFORM_SHORT =" tvOS"
5253 SIMPLATFORM_REGEX=" tvOS"
5354 SIMDEVICE_REGEX=" AppleTV"
5455 ;;
5556
5657 watchos)
57- SIMPLATFORM =" watchOS"
58+ SIMPLATFORM_SHORT =" watchOS"
5859 SIMPLATFORM_REGEX=" watchOS"
5960 SIMDEVICE_REGEX=" Apple\sWatch\sSeries"
6061 ;;
6162
6263 visionos)
63- SIMPLATFORM =" visionOS"
64+ SIMPLATFORM_SHORT =" visionOS"
6465 SIMPLATFORM_REGEX=" visionOS"
6566 SIMDEVICE_REGEX=" Apple\sVision\sPro"
6667 ;;
6768
6869 iphone)
69- SIMPLATFORM =" iOS"
70+ SIMPLATFORM_SHORT =" iOS"
7071 SIMPLATFORM_REGEX=" iOS"
7172 SIMDEVICE_REGEX=" iPhone\s\d{2}\s"
7273 ;;
7374
7475 iphone-air)
75- SIMPLATFORM =" iOS"
76+ SIMPLATFORM_SHORT =" iOS"
7677 SIMPLATFORM_REGEX=" iOS"
7778 SIMDEVICE_REGEX=" iPhone\sAir"
7879 ;;
7980
8081 iphone-pro)
81- SIMPLATFORM =" iOS"
82+ SIMPLATFORM_SHORT =" iOS"
8283 SIMPLATFORM_REGEX=" iOS"
8384 SIMDEVICE_REGEX=" iPhone\s\d{2}\sPro\s"
8485 ;;
8586
8687 iphone-pro-max)
87- SIMPLATFORM =" iOS"
88+ SIMPLATFORM_SHORT =" iOS"
8889 SIMPLATFORM_REGEX=" iOS"
8990 SIMDEVICE_REGEX=" iPhone\s\d{2}\sPro\sMax"
9091 ;;
9192
9293 ipad)
93- SIMPLATFORM =" iOS"
94+ SIMPLATFORM_SHORT =" iOS"
9495 SIMPLATFORM_REGEX=" iOS"
9596 SIMDEVICE_REGEX=" iPad\s"
9697 ;;
9798
9899 ipad-air)
99- SIMPLATFORM =" iOS"
100+ SIMPLATFORM_SHORT =" iOS"
100101 SIMPLATFORM_REGEX=" iOS"
101102 SIMDEVICE_REGEX=" iPad\sAir"
102103 ;;
103104
104105 ipad-mini)
105- SIMPLATFORM =" iOS"
106+ SIMPLATFORM_SHORT =" iOS"
106107 SIMPLATFORM_REGEX=" iOS"
107108 SIMDEVICE_REGEX=" iPad\smini"
108109 ;;
109110
110111 ipad-pro)
111- SIMPLATFORM =" iOS"
112+ SIMPLATFORM_SHORT =" iOS"
112113 SIMPLATFORM_REGEX=" iOS"
113114 SIMDEVICE_REGEX=" iPad\sPro"
114115 ;;
115116
116117 tv)
117- SIMPLATFORM =" tvOS"
118+ SIMPLATFORM_SHORT =" tvOS"
118119 SIMPLATFORM_REGEX=" tvOS"
119120 SIMDEVICE_REGEX=" Apple\sTV"
120121 ;;
121122
122123 tv-4k)
123- SIMPLATFORM =" tvOS"
124+ SIMPLATFORM_SHORT =" tvOS"
124125 SIMPLATFORM_REGEX=" tvOS"
125126 SIMDEVICE_REGEX=" Apple\sTV\s4K"
126127 ;;
127128
128129 watch)
129- SIMPLATFORM =" watchOS"
130+ SIMPLATFORM_SHORT =" watchOS"
130131 SIMPLATFORM_REGEX=" watchOS"
131132 SIMDEVICE_REGEX=" Apple\sWatch"
132133 ;;
133134
134135 watch-se)
135- SIMPLATFORM =" watchOS"
136+ SIMPLATFORM_SHORT =" watchOS"
136137 SIMPLATFORM_REGEX=" watchOS"
137138 SIMDEVICE_REGEX=" Apple\sWatch\sSE"
138139 ;;
139140
140141 watch-series)
141- SIMPLATFORM =" watchOS"
142+ SIMPLATFORM_SHORT =" watchOS"
142143 SIMPLATFORM_REGEX=" watchOS"
143144 SIMDEVICE_REGEX=" Apple\sWatch\sSeries"
144145 ;;
145146
146147 watch-ultra)
147- SIMPLATFORM =" watchOS"
148+ SIMPLATFORM_SHORT =" watchOS"
148149 SIMPLATFORM_REGEX=" watchOS"
149150 SIMDEVICE_REGEX=" Apple\sWatch\sUltra"
150151 ;;
151152
152153 visionpro)
153- SIMPLATFORM =" visionOS"
154+ SIMPLATFORM_SHORT =" visionOS"
154155 SIMPLATFORM_REGEX=" visionOS"
155156 SIMDEVICE_REGEX=" Apple\sVision\sPro"
156157 ;;
157158
158159 visionpro-4k)
159- SIMPLATFORM =" visionOS"
160+ SIMPLATFORM_SHORT =" visionOS"
160161 SIMPLATFORM_REGEX=" visionOS"
161162 SIMDEVICE_REGEX=" Apple\sVision\sPro\s4K"
162163 ;;
@@ -175,29 +176,34 @@ case $INPUT_TARGET_LOWERCASE in
175176 XCODE_OUTPUT_REGEX=" m/\{\splatform:(.*\sSimulator),.*id:([A-F0-9\-]{36}),.*OS:(\d{1,2}\.\d),.*name:([a-zA-Z0-9\(\)\s]*)\s\}/g"
176177
177178 # Parse out platform name from first sorted result.
178- SIMPLATFORM =$( echo " ${XCODE_OUTPUT} " | perl -nle ' if (' $XCODE_OUTPUT_REGEX ' ) { ($plat, $id, $os, $name) = ($1, $2, $3, $4); if ($name =~ /' $SIMDEVICE_REGEX ' /) { print "${plat}"; } }' | sort -rV | head -n 1)
179+ SIMPLATFORM_SHORT =$( echo " ${XCODE_OUTPUT} " | perl -nle ' if (' $XCODE_OUTPUT_REGEX ' ) { ($plat, $id, $os, $name) = ($1, $2, $3, $4); if ($name =~ /' $SIMDEVICE_REGEX ' /) { print "${plat}"; } }' | sort -rV | head -n 1)
179180
180- if [[ -n $SIMPLATFORM ]]; then
181+ if [[ -n $SIMPLATFORM_SHORT ]]; then
181182 # Copy to regex as-is
182- SIMPLATFORM_REGEX=" $SIMPLATFORM "
183+ SIMPLATFORM_REGEX=" $SIMPLATFORM_SHORT "
183184 else
184185 # If no platform is found, substitute with a pass-thru regex.
185186 # This should probably exit with an error code, but being more permissive may be useful.
186- SIMPLATFORM =" Unknown"
187+ SIMPLATFORM_SHORT =" Unknown"
187188 SIMPLATFORM_REGEX=" .*"
188189 fi
189190 ;;
190191esac
191192
193+ # Short Platform
194+ SIMPLATFORM=" $SIMPLATFORM_SHORT Simulator"
195+
192196# Provide diagnostic output of platform and device regex strings.
193- echo " Using platform: $SIMPLATFORM "
197+ echo " Using platform name: $SIMPLATFORM "
198+ echo " Using platform name (short): $SIMPLATFORM_SHORT "
194199echo " Using platform name regex: $SIMPLATFORM_REGEX "
195200echo " Using device name regex: $SIMDEVICE_REGEX "
196201
197202# Set output variables.
198203echo " parsed-workspace-path=$( echo $WORKSPACEPATH ) " >> $GITHUB_OUTPUT
199204echo " parsed-scheme=$( echo $SCHEME ) " >> $GITHUB_OUTPUT
200205echo " parsed-platform=$( echo $SIMPLATFORM ) " >> $GITHUB_OUTPUT
206+ echo " parsed-platform-short=$( echo $SIMPLATFORM_SHORT ) " >> $GITHUB_OUTPUT
201207echo " parsed-platform-regex=$( echo $SIMPLATFORM_REGEX ) " >> $GITHUB_OUTPUT
202208echo " parsed-device-regex=$( echo $SIMDEVICE_REGEX ) " >> $GITHUB_OUTPUT
203209echo " parsed-os-version-regex=$( echo $OSVERSION_REGEX ) " >> $GITHUB_OUTPUT
0 commit comments