Add CI typecheck for iOS UniFFI app bridge

This commit is contained in:
Mikhail Kilin
2026-05-21 00:48:30 +03:00
parent 75cd319f53
commit aec3678bd6
3 changed files with 41 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ffi_dir="${1:-/private/tmp/tele-ios-ffi-swift-smoke}"
module_cache="${2:-/private/tmp/tele-ios-ffi-app-typecheck-module-cache}"
if [[ -z "${DEVELOPER_DIR:-}" && -d /Applications/Xcode.app/Contents/Developer ]]; then
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
fi
if [[ ! -f "${ffi_dir}/Swift/tele_ios_ffi.swift" || ! -f "${ffi_dir}/Headers/module.modulemap" ]]; then
"${repo_root}/scripts/smoke-ios-ffi-swift.sh" "${ffi_dir}"
fi
swiftc \
-typecheck \
-parse-as-library \
-module-name TeleTuiIOSCore \
-module-cache-path "${module_cache}" \
-I "${ffi_dir}/Headers" \
"${ffi_dir}/Swift/tele_ios_ffi.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/Models.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/Bridge.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/Lifecycle.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/PlatformServices.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/SessionBridgeFactory.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/Storage.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/ViewModels.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/Views.swift" \
"${repo_root}/apps/ios/TeleTuiIOS/Sources/TeleTuiIOSCore/UniFfiSessionBridge.swift"
printf 'Typechecked TeleTuiIOSCore against UniFFI Swift bindings in %s\n' "${ffi_dir}"