Skip to content

Update ui_tests.yml #80

Update ui_tests.yml

Update ui_tests.yml #80

Workflow file for this run

name: UI Tests
on:
workflow_dispatch: {}
pull_request:
branches:
- main
paths:
- '.github/workflows/ui_tests.yml'
- 'Sources/**'
- '!Sources/Runestone/Documentation.docc/**'
- 'UITests/HostUITests/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
DEVELOPER_DIR: /Applications/Xcode_14.3.1.app/Contents/Developer
jobs:
run_korean_tests:
name: Run Korean tests
runs-on: macos-12
env:
SIMULATOR_NAME: UI Test (Korean)
SCHEME: Host
PROJECT_PATH: UITests/UITests.xcodeproj
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Disable "Use the Same Keyboard Language as macOS"
run: defaults write com.apple.iphonesimulator EnableKeyboardSync -bool NO
- name: Create Simulator
run: xcrun simctl create "${SIMULATOR_NAME}" "iPhone 13" "iOS15.5"
- name: Find Simulator UDID
run: |
TMP_SIMULATOR_UDID=`xcrun simctl list --json devices | jq -r ".devices | flatten | .[] | select(.name == \"${SIMULATOR_NAME}\").udid"`
echo "SIMULATOR_UDID=$(echo $TMP_SIMULATOR_UDID)" >> $GITHUB_ENV
- name: Modify .GlobalPreferences.plist
run: >
find ~/Library/Developer/CoreSimulator/Devices/$SIMULATOR_UDID -type d -maxdepth 0\
-exec /usr/libexec/PlistBuddy\
-c "Add :AppleKeyboardsExpanded integer 1"\
-c "Delete :AppleLanguages"\
-c "Add :AppleLanguages array"\
-c "Add :AppleLanguages:0 string en-US"\
-c "Delete :AppleKeyboards"\
-c "Add :AppleKeyboards array"\
-c "Add :AppleKeyboards:0 string ko_KR@Sw=Korean;hw=Automatic"\
{}/data/Library/Preferences/.GlobalPreferences.plist \;
- name: Disable "Connect Hardware Keyboard" in the simulator.
run: >
find ~/Library/Preferences/com.apple.iphonesimulator.plist\
-exec /usr/libexec/PlistBuddy\
-c "Add :DevicePreferences dict"\
-c "Add :DevicePreferences:${SIMULATOR_UDID} dict"\
-c "Add :DevicePreferences:${SIMULATOR_UDID}:ConnectHardwareKeyboard bool false"\
{} \;
- name: Build
run: >
xcodebuild build-for-testing\
-project $PROJECT_PATH\
-scheme $SCHEME\
-sdk iphonesimulator\
-destination "platform=iOS Simulator,id=${SIMULATOR_UDID}"
- name: Run Tests
run: >
xcodebuild test-without-building\
-only-testing:HostUITests/KoreanInputTests\
-project $PROJECT_PATH\
-scheme $SCHEME\
-sdk iphonesimulator\
-destination "platform=iOS Simulator,id=${SIMULATOR_UDID}"
- name: Remove Simulator Preferences
run: >
find ~/Library/Preferences/com.apple.iphonesimulator.plist\
-exec /usr/libexec/PlistBuddy\
-c "Delete :DevicePreferences:${SIMULATOR_UDID}"\
{} \;
- name: Delete Simulator
if: always()
run: xcrun simctl delete $SIMULATOR_UDID
run_chinese_tests:
name: Run Chinese tests
runs-on: macos-13
env:
SIMULATOR_NAME: UI Test (Chinese)
SCHEME: Host
PROJECT_PATH: UITests/UITests.xcodeproj
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Disable "Use the Same Keyboard Language as macOS"
run: defaults write com.apple.iphonesimulator EnableKeyboardSync -bool NO
- name: Create Simulator
run: xcrun simctl create "${SIMULATOR_NAME}" "iPhone 13" "iOS15.5"
- name: Find Simulator UDID
run: |
TMP_SIMULATOR_UDID=`xcrun simctl list --json devices | jq -r ".devices | flatten | .[] | select(.name == \"${SIMULATOR_NAME}\").udid"`
echo "SIMULATOR_UDID=$(echo $TMP_SIMULATOR_UDID)" >> $GITHUB_ENV
- name: Modify .GlobalPreferences.plist
run: >
find ~/Library/Developer/CoreSimulator/Devices/$SIMULATOR_UDID -type d -maxdepth 0\
-exec /usr/libexec/PlistBuddy\
-c "Add :AppleKeyboardsExpanded integer 1"\
-c "Delete :AppleLanguages"\
-c "Add :AppleLanguages array"\
-c "Add :AppleLanguages:0 string en-US"\
-c "Delete :AppleKeyboards"\
-c "Add :AppleKeyboards array"\
-c "Add :AppleKeyboards:0 string zh_Hant-Sucheng@sw=Sucheng;hw=Automatic"\
{}/data/Library/Preferences/.GlobalPreferences.plist \;
- name: Disable "Connect Hardware Keyboard" in the simulator.
run: >
find ~/Library/Preferences/com.apple.iphonesimulator.plist\
-exec /usr/libexec/PlistBuddy\
-c "Add :DevicePreferences dict"\
-c "Add :DevicePreferences:${SIMULATOR_UDID} dict"\
-c "Add :DevicePreferences:${SIMULATOR_UDID}:ConnectHardwareKeyboard bool false"\
{} \;
- name: Build
run: >
xcodebuild build-for-testing -project\
$PROJECT_PATH -scheme $SCHEME\
-sdk iphonesimulator\
-destination "platform=iOS Simulator,id=${SIMULATOR_UDID}"
- name: Run Tests
run: >
xcodebuild test-without-building\
-only-testing:HostUITests/ChineseInputTests\
-project $PROJECT_PATH\
-scheme $SCHEME\
-sdk iphonesimulator\
-destination "platform=iOS Simulator,id=${SIMULATOR_UDID}"
- name: Remove Simulator Preferences
run: >
find ~/Library/Preferences/com.apple.iphonesimulator.plist\
-exec /usr/libexec/PlistBuddy\
-c "Delete :DevicePreferences:${SIMULATOR_UDID}"\
{} \;
- name: Delete Simulator
if: always()
run: xcrun simctl delete $SIMULATOR_UDID