From 1062e7324a5656f21485ac5d4ff3ba9b0f06f2c8 Mon Sep 17 00:00:00 2001 From: Aleksey Mikhailov Date: Sun, 22 Sep 2024 13:21:08 +0700 Subject: [PATCH] fix checks --- .github/workflows/compilation-check.yml | 8 ++--- README.md | 4 +++ local-check.sh | 18 ++++++++++ sample/ios-app/Podfile.lock | 2 +- .../TestProj.xcodeproj/project.pbxproj | 4 ++- sample/local-check.sh | 34 +++++++++++++++++++ .../mpp-library/MultiPlatformLibrary.podspec | 15 +++----- 7 files changed, 68 insertions(+), 17 deletions(-) create mode 100755 local-check.sh create mode 100755 sample/local-check.sh diff --git a/.github/workflows/compilation-check.yml b/.github/workflows/compilation-check.yml index 851762c..e12b271 100644 --- a/.github/workflows/compilation-check.yml +++ b/.github/workflows/compilation-check.yml @@ -17,8 +17,6 @@ jobs: with: java-version: 17 - name: Check runtime - run: ./gradlew build publishToMavenLocal syncMultiPlatformLibraryDebugFrameworkIosSimulatorArm64 - - name: Install pods - run: cd sample/ios-app && pod install - - name: build ios sample - run: cd sample/ios-app && set -o pipefail && xcodebuild -scheme TestProj -workspace TestProj.xcworkspace -configuration Debug -sdk iphonesimulator -arch arm64 build CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO | xcpretty + run: ./local-check.sh + - name: Check sample + run: cd sample/ios-app && ./local-check.sh diff --git a/README.md b/README.md index a852011..bc79bf5 100755 --- a/README.md +++ b/README.md @@ -104,6 +104,10 @@ The `develop` branch is pushed to `master` on release. For more details on contributing please see the [contributing guide](CONTRIBUTING.md). +Before send PR please run checks on local: +- `./local-check.sh` in root of repository +- `./local-check.sh` in `sample` directory + ## License Copyright 2019 IceRock MAG Inc. diff --git a/local-check.sh b/local-check.sh new file mode 100755 index 0000000..2d3d9c2 --- /dev/null +++ b/local-check.sh @@ -0,0 +1,18 @@ +set -e + +log() { + echo "\033[0;32m> $1\033[0m" +} + +# run gradle tasks in faster order to receive faster feedback +./gradlew detekt +log "runtime detekt success" + +./gradlew assembleDebug +log "runtime android success" + +./gradlew compileKotlinIosX64 +log "runtime ios success" + +./gradlew build publishToMavenLocal +log "runtime build and publish success" diff --git a/sample/ios-app/Podfile.lock b/sample/ios-app/Podfile.lock index 5c2945f..06a4a52 100644 --- a/sample/ios-app/Podfile.lock +++ b/sample/ios-app/Podfile.lock @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../mpp-library" SPEC CHECKSUMS: - MultiPlatformLibrary: bcc3cf3919bec45c134090b11abd072e73e82e37 + MultiPlatformLibrary: e90154651f2068415822dc37193df246c92e7b2a PODFILE CHECKSUM: f02f071e13bda07c0fef717fc00fab294cd42253 diff --git a/sample/ios-app/TestProj.xcodeproj/project.pbxproj b/sample/ios-app/TestProj.xcodeproj/project.pbxproj index f292213..7375c83 100644 --- a/sample/ios-app/TestProj.xcodeproj/project.pbxproj +++ b/sample/ios-app/TestProj.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -273,6 +273,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 4VU932NX78; INFOPLIST_FILE = src/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; PRODUCT_BUNDLE_IDENTIFIER = dev.icerock.moko.sample.geo; PRODUCT_NAME = "moko-geo"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -291,6 +292,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 4VU932NX78; INFOPLIST_FILE = src/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; PRODUCT_BUNDLE_IDENTIFIER = dev.icerock.moko.sample.geo; PRODUCT_NAME = "moko-geo"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/sample/local-check.sh b/sample/local-check.sh new file mode 100755 index 0000000..8db5664 --- /dev/null +++ b/sample/local-check.sh @@ -0,0 +1,34 @@ +# +# Copyright 2023 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. +# + +set -e + +log() { + echo "\033[0;32m> $1\033[0m" +} + +./gradlew clean assembleDebug +log "sample android success" + +if ! command -v xcodebuild &> /dev/null +then + log "xcodebuild could not be found, skip ios checks" + + ./gradlew build + log "sample full build success" +else + ./gradlew clean compileKotlinIosX64 + log "sample ios success" + + ./gradlew clean build syncMultiPlatformLibraryDebugFrameworkIosX64 + log "sample clean build success" + + ( + cd ios-app && + pod install && + set -o pipefail && + xcodebuild -scheme TestProj -workspace TestProj.xcworkspace -configuration Debug -sdk iphonesimulator -arch x86_64 build CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO | xcpretty + ) + log "sample ios xcode success" +fi diff --git a/sample/mpp-library/MultiPlatformLibrary.podspec b/sample/mpp-library/MultiPlatformLibrary.podspec index 953e2ed..2018f59 100644 --- a/sample/mpp-library/MultiPlatformLibrary.podspec +++ b/sample/mpp-library/MultiPlatformLibrary.podspec @@ -19,7 +19,6 @@ Pod::Spec.new do |spec| 'KOTLIN_FRAMEWORK_BUILD_TYPE[config=*elease]' => 'release', 'CURENT_SDK[sdk=iphoneos*]' => 'iphoneos', 'CURENT_SDK[sdk=iphonesimulator*]' => 'iphonesimulator', - 'CURENT_SDK[sdk=macosx*]' => 'macos' } spec.script_phases = [ @@ -37,21 +36,17 @@ fi if [ "$CURENT_SDK" == "iphoneos" ]; then TARGET="Ios" ARCH="Arm64" -elif [ "$CURENT_SDK" == "macos" ]; then - TARGET="Macos" - if [ "$NATIVE_ARCH" == "arm64" ]; then - ARCH="Arm64" - else - ARCH="X64" - fi -else - if [ "$NATIVE_ARCH" == "arm64" ]; then +elif [ "$CURENT_SDK" == "iphonesimulator" ]; then + if [ "$ARCHS" == "arm64" ]; then TARGET="IosSimulator" ARCH="Arm64" else TARGET="Ios" ARCH="X64" fi +else + echo "unsupported $CURENT_SDK" + exit 1 fi MPP_PROJECT_ROOT="$SRCROOT/../../mpp-library"