Sha256: a572c8105a8a66083bfca5729f0cbebba6a99557d7998b2d2aff160b09c99b45
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true require 'cocoapods' module GoNative module Plugins module IOS class Release extend DSL::Serviceable include Helpers::SpecReader GONATIVE_SOURCE_NAME = 'gonative-specs' def call Utils::UI.info 'Linting and releasing pod' assert_spec_exists! sources_manager.update(GONATIVE_SOURCE_NAME) assert_not_pushed! create_and_push_tag! push_to_pod_repo! end private def assert_spec_exists! return if spec_name raise Error, 'No podspec file exists' end def assert_not_pushed! version = spec.version name = spec.name pushed_versions = source.versions(name)&.collect(&:to_s) if pushed_versions&.include? version.to_s raise Error, "#{name} (#{version}) has already been pushed to #{source.name}" end end def create_and_push_tag! return if system("git tag | grep #{spec.version} > /dev/null") system "git add -A && git commit -m \"Releases #{spec.version}.\"" system "git tag #{spec.version}" system 'git push && git push --tags' end def push_to_pod_repo! system "pod repo push #{GONATIVE_SOURCE_NAME} #{spec_name} --private --allow-warnings --skip-import-validation" end def source @source ||= sources_manager.source_with_name_or_url(GONATIVE_SOURCE_NAME) end def sources_manager Pod::Config.instance.sources_manager end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gonative-cli-1.4.3 | lib/gonative/plugins/ios/release.rb |