Class: CBin::Upload::Helper

Inherits:
Object
  • Object
show all
Includes:
SourcesHelper
Defined in:
lib/cocoapods-tdf-bin/helpers/upload_helper.rb

Instance Method Summary collapse

Methods included from SourcesHelper

#binary_source, #code_source, #sources_manager, #sources_option, #valid_sources

Constructor Details

#initialize(spec, code_dependencies, sources, verbose) ⇒ Helper

Returns a new instance of Helper.



19
20
21
22
23
24
# File 'lib/cocoapods-tdf-bin/helpers/upload_helper.rb', line 19

def initialize(spec, code_dependencies, sources, verbose)
  @spec = spec
  @code_dependencies = code_dependencies
  @sources = sources
  @verbose = verbose
end

Instance Method Details

#curl_frameworkObject

推送二进制 curl ci.xxx:9192/frameworks -F “name=IMYFoundation” -F “version=7.7.4.2” -F “annotate=IMYFoundation_7.7.4.2_log” -F “file=@bin-zip/bin_IMYFoundation_7.7.4.2.zip”



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/cocoapods-tdf-bin/helpers/upload_helper.rb', line 50

def curl_framework

  zip_file = "#{CBin::Config::Builder.instance.zip_dir}/#{@spec.name}.xcframework.zip"
  res = File.exist?(zip_file)
  if res
    command = "curl #{CBin.config.bin_upload_url} -F \"frameworkName=#{@spec.name}\" -F \"version=#{@spec.version}\" -F \"changelog=#{@spec.name}_#{@spec.version}_log\" -F \"framework=@#{zip_file}\""
    print <<EOF
    上传二进制文件
    #{command}
EOF
    upload_result = `#{command}`
    puts "#{upload_result}"
  end

  res
end

#push_binary_repo(binary_podsepc_json) ⇒ Object

上传二进制 podspec



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/cocoapods-tdf-bin/helpers/upload_helper.rb', line 69

def push_binary_repo(binary_podsepc_json)
  argvs = [
      "#{binary_podsepc_json}",
      "--binary",
      "--sources=#{sources_option(@code_dependencies, @sources)}",
      "--skip-import-validation",
      "--use-libraries",
      "--allow-warnings",
      "--code-dependencies",
  ]
  if @verbose
    argvs += ['--verbose']
  end

  puts "开始上传【#{binary_podsepc_json}】组件:#{argvs}"
  push = Pod::Command::Bin::Repo::Push.new(CLAide::ARGV.new(argvs))
  push.validate!
  push.run
end

#spec_creatorObject



41
42
43
44
45
46
# File 'lib/cocoapods-tdf-bin/helpers/upload_helper.rb', line 41

def spec_creator
  spec_creator = CBin::SpecificationSource::Creator.new(@spec)
  spec_creator.create
  spec_creator.write_spec_file
  spec_creator.filename
end

#uploadObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/cocoapods-tdf-bin/helpers/upload_helper.rb', line 26

def upload
  Dir.chdir(CBin::Config::Builder.instance.root_dir) do

    # 创建binary-template.podsepc
    # 上传二进制文件
    # 上传二进制 podspec
    res_framework = curl_framework
    if res_framework
      filename = spec_creator
      push_binary_repo(filename)
    end
    res_framework
  end
end