From 07f327f46b11c4bd0fa202685188672d1e9ec4e3 Mon Sep 17 00:00:00 2001 From: Pritesh Nandgaonkar Date: Tue, 14 May 2019 07:14:33 -0700 Subject: [PATCH] Automate iOS release (#445) Summary: This PR sets up Circle CI to publish pods when github release is made. This PR also updates the Flipper-Folly pod as it didn't build on 32 bit architecture, because `thread_local` was not supported. Automated publish of cocoapods through Circle CI. Pull Request resolved: https://github.com/facebook/flipper/pull/445 Reviewed By: danielbuechele Differential Revision: D15333975 Pulled By: priteshrnandgaonkar fbshipit-source-id: 7db68efeeebbe344213917f10f9f3ce4132e8cbc --- .circleci/config.yml | 25 ++++++++++++++++++++++++- Flipper.podspec | 3 ++- FlipperKit.podspec | 2 +- iOS/Podspecs/Flipper-Folly.podspec | 10 +++++----- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 06ddcd5828f..a4f2e621229 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,7 +20,6 @@ jobs: command: | yes | sdkmanager "platforms;android-27" || true ./gradlew :android:assembleRelease && scripts/publish-android-snapshot.sh - release: executor: default-executor docker: @@ -32,6 +31,24 @@ jobs: command: | yes | sdkmanager "platforms;android-27" || true ./gradlew :android:assembleRelease && scripts/publish-android-release.sh + publish-pods: + macos: + xcode: "10.2.1" + steps: + - checkout + - run: curl https://cocoapods-specs.circleci.com/fetch-cocoapods-repo-from-s3.sh | bash -s cf + - run: + name: "Pod version" + command: | + pod --version + - run: + name: "Push Flipper Pod" + command: | + pod trunk push ./Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation + - run: + name: "Push FlipperKit Pod" + command: | + pod trunk push ./FlipperKit.podspec --use-libraries --allow-warnings --verbose --skip-import-validation --swift-version=4.2 workflows: version: 2 @@ -47,3 +64,9 @@ workflows: only: /^v.*/ branches: ignore: /.*/ + - publish-pods: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ diff --git a/Flipper.podspec b/Flipper.podspec index e3b68e5748b..05b534a4bbc 100644 --- a/Flipper.podspec +++ b/Flipper.podspec @@ -12,13 +12,14 @@ Pod::Spec.new do |spec| spec.public_header_files = 'xplat/Flipper/*.h','xplat/utils/*.h' spec.source_files = 'xplat/Flipper/*.{h,cpp,m,mm}','xplat/Flipper/utils/*.{h,cpp,m,mm}' spec.libraries = "stdc++" - spec.dependency 'Flipper-Folly', '1.3.0' + spec.dependency 'Flipper-Folly', '~> 1.3' spec.dependency 'Flipper-RSocket', '0.10.4' spec.compiler_flags = '-DFLIPPER_OSS=1 -DFB_SONARKIT_ENABLED=1 -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_HAVE_LIBGFLAGS=0 -DFOLLY_HAVE_LIBJEMALLOC=0 -DFOLLY_HAVE_PREADV=0 -DFOLLY_HAVE_PWRITEV=0 -DFOLLY_HAVE_TFO=0 -DFOLLY_USE_SYMBOLIZER=0 -Wall -std=c++14 -Wno-global-constructors' spec.platforms = { :ios => "8.0" } spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", + "ARCHS" => "${ARCHS_STANDARD_64_BIT}", "CLANG_CXX_LANGUAGE_STANDARD" => "c++14", "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-RSocket\" \"$(PODS_ROOT)/DoubleConversion\"" } end diff --git a/FlipperKit.podspec b/FlipperKit.podspec index 52b950a2d0a..1f9d7e51bd2 100644 --- a/FlipperKit.podspec +++ b/FlipperKit.podspec @@ -46,7 +46,7 @@ Pod::Spec.new do |spec| spec.subspec 'FBCxxUtils' do |ss| ss.header_dir = 'FBCxxUtils' ss.compiler_flags = folly_compiler_flags - ss.dependency 'Flipper-Folly', '1.3.0' + ss.dependency 'Flipper-Folly', '~> 1.3' ss.source_files = 'iOS/FlipperKit/FBCxxUtils/**/*.{h,mm}' # We set these files as private headers since they only need to be accessed # by other FlipperKit source files diff --git a/iOS/Podspecs/Flipper-Folly.podspec b/iOS/Podspecs/Flipper-Folly.podspec index 012255ee8cd..afb62e0f306 100644 --- a/iOS/Podspecs/Flipper-Folly.podspec +++ b/iOS/Podspecs/Flipper-Folly.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = 'Flipper-Folly' - spec.version = '1.3.0' + spec.version = '1.3.4' spec.license = { :type => 'Apache License, Version 2.0' } spec.homepage = 'https://github.com/facebook/folly' spec.summary = 'An open-source C++ library developed and used at Facebook.' @@ -152,10 +152,10 @@ Pod::Spec.new do |spec| "folly/futures/*.h", "folly/futures/detail/*.h" - spec.pod_target_xcconfig = { "USE_HEADERMAP": "NO", - "ONLY_ACTIVE_ARCH": "YES", - "CLANG_CXX_LANGUAGE_STANDARD": "c++11", - "HEADER_SEARCH_PATHS": "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\"" + spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", + "ARCHS" => "${ARCHS_STANDARD_64_BIT}", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++11", + "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\"" } # Pinning to the same version as React.podspec. spec.platforms = { :ios => "8.0"}