test: build ci #41
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: | |
| pull_request: | |
| env: | |
| SCHEME: DevLog | |
| permissions: | |
| contents: read | |
| issues: write | |
| pull-requests: write | |
| jobs: | |
| build: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: latest | |
| - name: Select iOS Simulator Runtime (installed) | |
| id: pick_ios | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| # simctl 텍스트 헤더 버전 기준으로 최신 iOS 버전의 iPhone 선택 | |
| RESULT=$(xcrun simctl list devices | awk ' | |
| /^== iOS / {ver=$3; next} | |
| /\(unavailable\)/ {next} | |
| ver && $0 ~ /iPhone/ { | |
| line=$0 | |
| sub(/^[[:space:]]+/, "", line) | |
| sub(/ \(.*/, "", line) | |
| print ver "|" line | |
| } | |
| ' | sort -t'|' -k1,1Vr | head -n 1) | |
| if [ -z "${RESULT:-}" ]; then | |
| echo "No iPhone simulator devices detected." >&2 | |
| exit 1 | |
| fi | |
| IFS='|' read -r IOS_VER DEVICE_NAME <<< "$RESULT" | |
| echo "Chosen iOS runtime version (iPhone): $IOS_VER" | |
| echo "Chosen simulator: $DEVICE_NAME" | |
| echo "ios_version=$IOS_VER" >> "$GITHUB_OUTPUT" | |
| echo "device_name=$DEVICE_NAME" >> "$GITHUB_OUTPUT" | |
| - name: Build | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| set -x | |
| IOS_VER="${{ steps.pick_ios.outputs.ios_version }}" | |
| DEVICE_NAME="${{ steps.pick_ios.outputs.device_name }}" | |
| xcodebuild -version | |
| echo "Using scheme: $SCHEME" | |
| echo "Using simulator: $DEVICE_NAME (iOS ${IOS_VER})" | |
| # 예시: 시뮬레이터 대상으로 빌드/테스트 시 destination에서 OS 지정 | |
| set -o pipefail | |
| xcodebuild \ | |
| -scheme "$SCHEME" \ | |
| -configuration Debug \ | |
| -destination "platform=iOS Simulator,OS=${IOS_VER},name=${DEVICE_NAME}" \ | |
| -showBuildTimingSummary \ | |
| build \ | |
| | cat |