# Copyright © 2017 Applause Inc. All rights reserved.
namespace :applause_pod do
APPLAUSE_PODS_SOURCE = "ssh://git@github.com/ApplauseAQI/cocoa-pods-specs.git" COCOA_PODS_SOURCE = "ssh://git@github.com/CocoaPods/Specs.git" desc 'Release new pod version if it was not yet released' task :release do pod_version = pod_version() unless pod_version.nil? if pod_not_published(pod_version) create_tag(pod_version) publish_pod else puts "Pod version already published" end end end desc 'Validate the pod' task :validate do system("pod lib lint --sources='#{APPLAUSE_PODS_SOURCE}, #{COCOA_PODS_SOURCE}' --allow-warnings") end desc 'Publish the pod to Applause podspec repo' task :publish do system("pod repo push applause --sources='#{APPLAUSE_PODS_SOURCE}, #{COCOA_PODS_SOURCE}' --allow-warnings") end desc 'Updates Applause podspec repo' task :update_repo => :add_repo do system("pod repo update") end desc 'Adds Applause podspec repo' task :add_repo do system("pod repo add applause #{APPLAUSE_PODS_SOURCE}") end private def pod_version podspecs = Pathname.glob(File.join(Dir.pwd, '*.podspec{.json,}')) unless podspecs.empty? podspec_path = podspecs.first puts podspec_path spec = Pod::Specification.from_file(podspec_path) puts "Pod version: #{spec.version}" return spec.version.to_s.strip end puts "Can't find podspec in the directory" return nil end private def pod_not_published(pod_version) sdk_repo = Git.open('.') return !(sdk_repo.tags.any? { |tag| tag.name == pod_version }) end private def create_tag(pod_version) puts "Creating tag" sdk_repo = Git.open('.') sdk_repo.add_tag(pod_version) sdk_repo.push('origin', "refs/tags/#{pod_version}") end private def publish_pod puts "Publishing pod" Rake::Task["applause_pod:publish"].invoke end
end