cocoapods-fy-bin 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fabe41cc6cda2f5994cb55fa2c3385f5ae5df84cd585763ae319659098cd0e7e
4
- data.tar.gz: e4cb60fbd085a56011ca5345bd1ae9764a73a1478de19fe1c49b95211fad730b
3
+ metadata.gz: b7374e2f9c342f5e3d244eb1f16b40e7d51eba73404c9f580e514788c1eec74d
4
+ data.tar.gz: f689aff47091bc47316d37b464913e6fdc09589167ba07d6b12fbedf773f3d82
5
5
  SHA512:
6
- metadata.gz: 528c535a2d41e5bc101aabc3a8891fb3d605f7a85441b02b07c85f5ea069aadffb642b6292ef30053c97d075ca730f5d7d922d98eabd611cf9139b02a0612dc6
7
- data.tar.gz: 4c1707bbd3842bc0a38e7f61ea427c0c19163cc69e9e104c51a4ca0dd9b2b7079635fae7b2c10d480981b9ff874d5c3b4fddbae0cda137f215f3226180d117e9
6
+ metadata.gz: 74f1bde47198d2147a7cc638344dd962bd17deef18cfa02d9ab9d35756bd37cbe73086e1a963d99234da35d0b8de1b702c9c3d312151d81c5fcfdde1eba845ae
7
+ data.tar.gz: a4ec90337c36906530be7a64c1d15072be17872d6bfc44bad7a7e275597703e191e2e435aecb4698271b8e609985078f5c16b3de79f471a408bb8dfc015b9d25
@@ -30,7 +30,7 @@ module Pod
30
30
  ['--framework-output', '输出framework文件'],
31
31
  ['--no-zip', '不压缩静态库 为 zip'],
32
32
  ['--configuration', 'Build the specified configuration (e.g. Debug). Defaults to Release'],
33
- ['--env', "该组件上传的环境 %w[dev debug_iphoneos release_iphoneos]"],
33
+ ['--env', "该组件上传的环境 %w[debug release]"],
34
34
  ['--archs', "需要二进制组件的架构"]
35
35
  ].concat(Pod::Command::Gen.options).concat(super).uniq
36
36
  end
@@ -40,7 +40,7 @@ module Pod
40
40
  ]
41
41
 
42
42
  def initialize(argv)
43
- @env = argv.option('env') || 'dev'
43
+ @env = argv.option('env') || 'debug'
44
44
  CBin.config.set_configuration_env(@env)
45
45
  UI.warn "====== cocoapods-fy-bin #{CBin::VERSION} 版本 ======== \n "
46
46
  UI.warn "====== #{@env} 环境 ======== \n "
@@ -20,14 +20,14 @@ module Pod
20
20
  ['--no-zip', '不压缩静态 framework 为 zip'],
21
21
  ['--all-make', '对该组件的依赖库,全部制作为二进制组件'],
22
22
  ['--configuration', 'Build the specified configuration (e.g. Release ). Defaults to Debug'],
23
- ['--env', "该组件上传的环境 %w[dev debug_iphoneos release_iphoneos]"],
23
+ ['--env', "该组件上传的环境 %w[debug release]"],
24
24
  ['--archs', "需要二进制组件的架构"]
25
25
  ].concat(Pod::Command::Gen.options).concat(super).uniq
26
26
  end
27
27
 
28
28
  def initialize(argv)
29
29
 
30
- @env = argv.option('env') || 'dev'
30
+ @env = argv.option('env') || 'release'
31
31
  CBin.config.set_configuration_env(@env)
32
32
  @podspec = argv.shift_argument
33
33
  @specification = Specification.from_file(@podspec)
@@ -11,39 +11,37 @@ module CBin
11
11
 
12
12
  def template_hash
13
13
  {
14
- 'configuration_env' => { description: '编译环境', default: 'dev', selection: %w[dev debug_iphoneos release_iphoneos] },
15
- 'code_repo_url' => { description: '源码私有源 Git 地址', default: 'git@github.com:su350380433/example_spec_source.git' },
16
- 'binary_repo_url' => { description: '二进制私有源 Git 地址', default: 'git@github.com:su350380433/example_spec_bin_dev.git' },
17
- 'binary_download_url' => { description: '二进制下载地址,内部会依次传入组件名称与版本,替换字符串中的 %s ', default: 'http://localhost:8080/frameworks/%s/%s/zip' },
14
+ 'configuration_env' => { description: '编译环境', default: 'debug', selection: %w[debug release] },
15
+ 'code_repo_url' => { description: '源码私有源 Git 地址', default: 'https://gitlab.fuyoukache.com/iosThird/swiftThird/FYSwiftSpecs.git' },
16
+ 'binary_repo_url' => { description: '二进制私有源 Git 地址', default: 'https://gitlab.fuyoukache.com/binaryThirdDemo/FYBinarySpecs.git' },
17
+ 'binary_download_url' => { description: '二进制下载主机地址,内部会依次传入组件名称、版本、打包模式', default: 'https://mobilepods.fuyoukache.com' },
18
18
  # 'binary_type' => { description: '二进制打包类型', default: 'framework', selection: %w[framework library] },
19
19
  'download_file_type' => { description: '下载二进制文件类型', default: 'zip', selection: %w[zip tgz tar tbz txz dmg] }
20
20
  }
21
21
  end
22
22
 
23
23
  def config_file_with_configuration_env(configuration_env)
24
- file = config_dev_file
25
- if configuration_env == "release_iphoneos"
24
+ file = config_debug_iphoneos_file
25
+ if configuration_env == "release"
26
26
  file = config_release_iphoneos_file
27
27
  puts "\n====== #{configuration_env} 环境 ========"
28
- elsif configuration_env == "debug_iphoneos"
28
+ elsif configuration_env == "debug"
29
29
  file = config_debug_iphoneos_file
30
30
  puts "\n====== #{configuration_env} 环境 ========"
31
- elsif configuration_env == "dev"
32
- puts "\n====== #{configuration_env} 环境 ========"
33
31
  else
34
- raise "\n===== #{configuration_env} 参数有误,请检查%w[dev debug_iphoneos release_iphoneos]===="
32
+ raise "\n===== #{configuration_env} 参数有误,请检查%w[debug release]===="
35
33
  end
36
34
 
37
35
  File.expand_path("#{Pod::Config.instance.home_dir}/#{file}")
38
36
  end
39
37
 
40
38
  def configuration_env
41
- #如果是dev 再去 podfile的配置文件中获取,确保是正确的, pod update时会用到
42
- if @configuration_env == "dev" || @configuration_env == nil
39
+ #如果是debug 再去 podfile的配置文件中获取,确保是正确的, pod update时会用到
40
+ if @configuration_env == "debug" || @configuration_env == nil
43
41
  if Pod::Config.instance.podfile
44
42
  configuration_env ||= Pod::Config.instance.podfile.configuration_env
45
43
  end
46
- configuration_env ||= "dev"
44
+ configuration_env ||= "debug"
47
45
  @configuration_env = configuration_env
48
46
  end
49
47
  @configuration_env
@@ -51,8 +49,7 @@ module CBin
51
49
 
52
50
  #上传的url
53
51
  def binary_upload_url
54
- cut_string = "/%s/%s/zip"
55
- binary_download_url[0,binary_download_url.length - cut_string.length]
52
+ binary_download_url
56
53
  end
57
54
 
58
55
  def set_configuration_env(env)
@@ -61,15 +58,11 @@ module CBin
61
58
 
62
59
  #包含arm64 armv7架构,xcodebuild 是Debug模式
63
60
  def config_debug_iphoneos_file
64
- "bin_debug_iphoneos.yml"
61
+ "bin_debug.yml"
65
62
  end
66
63
  #包含arm64 armv7架构,xcodebuild 是Release模式
67
64
  def config_release_iphoneos_file
68
- "bin_release_iphoneos.yml"
69
- end
70
- #包含x86 arm64 armv7架构,xcodebuild 是Release模式
71
- def config_dev_file
72
- "bin_dev.yml"
65
+ "bin_release.yml"
73
66
  end
74
67
 
75
68
  def sync_config(config)
@@ -42,7 +42,7 @@ module CBin
42
42
 
43
43
  开始设置二进制化初始信息.
44
44
  所有的信息都会保存在 #{CBin.config.config_file} 文件中.
45
- %w[bin_dev.yml bin_debug_iphoneos.yml bin_release_iphoneos.yml]
45
+ %w[bin_debug.yml bin_release.yml]
46
46
  你可以在对应目录下手动添加编辑该文件. 文件包含的配置信息样式如下:
47
47
 
48
48
  #{CBin.config.default_config.to_yaml}
@@ -79,7 +79,8 @@ module CBin
79
79
  end
80
80
 
81
81
  def framework_zip_file(spec)
82
- File.join(zip_dir_name, framework_name_version(spec))
82
+ # File.join(zip_dir_name, framework_name_version(spec))
83
+ File.join(zip_dir_name, "file.zip")
83
84
  end
84
85
 
85
86
  def framework_file(spec)
@@ -1,6 +1,6 @@
1
1
 
2
2
  module CBin
3
- VERSION = '0.0.4'
3
+ VERSION = '0.0.5'
4
4
  end
5
5
 
6
6
  module Pod
@@ -90,7 +90,7 @@ module CBin
90
90
 
91
91
  def zip_static_library
92
92
  Dir.chdir(zip_dir) do
93
- output_library = "#{library_name}.zip"
93
+ output_library = "file.zip"
94
94
  unless File.exist?(library_name)
95
95
  raise Informative, "没有需要压缩的 library 文件:#{library_name}"
96
96
  end
@@ -111,7 +111,7 @@ module CBin
111
111
  FileUtils.rm_rf(framework_name) if @zip
112
112
  FileUtils.rm_rf(library_name)
113
113
  FileUtils.rm_rf(framework_name) unless @framework_output
114
- FileUtils.rm_rf("#{framework_name}.zip") unless @framework_output
114
+ FileUtils.rm_rf("file.zip") unless @framework_output
115
115
  end
116
116
  end
117
117
 
@@ -124,7 +124,8 @@ module CBin
124
124
  end
125
125
 
126
126
  def framework_name_zip
127
- CBin::Config::Builder.instance.framework_name_version(@spec) + ".zip"
127
+ # CBin::Config::Builder.instance.framework_name_version(@spec) + ".zip"
128
+ "file.zip"
128
129
  end
129
130
 
130
131
  def library_name
@@ -0,0 +1,44 @@
1
+ require 'rest-client'
2
+
3
+ module CBin
4
+ class Remote
5
+ class Helper
6
+ def initialize
7
+ @base_url = CBin.config.binary_upload_url
8
+ end
9
+
10
+ def exist?(name, version, tag)
11
+ uri = URI.join @base_url, "/frameworks/exit/#{name}/#{version}/#{tag}"
12
+ resp = RestClient.get(uri.to_s)
13
+ json = JSON.parse(resp.body)
14
+ json["data"]
15
+ end
16
+
17
+ def delete(name, version, tag)
18
+ uri = URI.join @base_url, "/frameworks/#{name}/#{version}/#{tag}"
19
+ resp = RestClient.delete uri.to_s
20
+ json = JSON.parse(resp.body)
21
+ json["status"]['code'] == 0
22
+ end
23
+
24
+ def upload(name, version, tag, file)
25
+ uri = URI.join @base_url, "/frameworks"
26
+ resp = RestClient.post(uri.to_s, {
27
+ file: File.new(file, 'rb'),
28
+ name: name,
29
+ version: version,
30
+ tag: tag
31
+ })
32
+ json = JSON.parse(resp.body)
33
+ @base_url + json["data"]['download_url']
34
+ end
35
+
36
+ def download_url(name, version, tag)
37
+ uri = URI.join @base_url, "/frameworks/#{name}/#{version}/#{tag}"
38
+ resp = RestClient.get uri.to_s
39
+ json = JSON.parse(resp.body)
40
+ @base_url + json["data"]['download_url']
41
+ end
42
+ end
43
+ end
44
+ end
@@ -99,6 +99,7 @@ module CBin
99
99
  # spec_hash.delete('vendored_libraries')
100
100
  # libraries 只能假设为动态库不做处理了,如果有例外,需要开发者自行处理
101
101
  spec_hash.delete('vendored_libraries')
102
+ spec_hash.delete('vendored_library')
102
103
 
103
104
  # vendored_libraries = Array(vendored_libraries).reject { |l| l.end_with?('.a') }
104
105
  # if vendored_libraries.any?
@@ -186,7 +187,7 @@ module CBin
186
187
 
187
188
 
188
189
  def binary_source
189
- { http: format(CBin.config.binary_download_url, code_spec.root.name, code_spec.version), type: CBin.config.download_file_type }
190
+ { http: "#{CBin.config.binary_download_url}/frameworks/download/#{code_spec.root.name}/#{code_spec.version}/#{CBin.config.configuration_env}/file.zip", type: CBin.config.download_file_type }
190
191
  end
191
192
 
192
193
  def code_spec_consumer(_platform = :ios)
@@ -9,6 +9,7 @@ require 'cocoapods-fy-bin/helpers/framework_builder'
9
9
  require 'cocoapods-fy-bin/helpers/library_builder'
10
10
  require 'cocoapods-fy-bin/helpers/sources_helper'
11
11
  require 'cocoapods-fy-bin/command/bin/spec/push'
12
+ require 'cocoapods-fy-bin/helpers/remote_helper'
12
13
 
13
14
  module CBin
14
15
  class Upload
@@ -19,10 +20,11 @@ module CBin
19
20
  @spec = spec
20
21
  @code_dependencies = code_dependencies
21
22
  @sources = sources
23
+ @remote_helper = CBin::Remote::Helper.new
22
24
  end
23
25
 
24
26
  def upload
25
- # curl_del_zip
27
+ del_zip
26
28
  Dir.chdir(CBin::Config::Builder.instance.root_dir) do
27
29
  # 创建binary-template.podsepc
28
30
  # 上传二进制文件
@@ -43,28 +45,29 @@ module CBin
43
45
  spec_creator.filename
44
46
  end
45
47
 
46
- def curl_del_zip
48
+ # 如果存在相同的版本号先删除组件二进制
49
+ def del_zip
47
50
  print <<EOF
48
- 删除已上传的二进制文件
49
- curl -v -X DELETE "#{CBin.config.binary_upload_url}/#{@spec.name}/#{@spec.version}"
51
+ 删除已上传的二进制文件 #{@spec.name} #{@spec.version} #{CBin.config.configuration_env}
50
52
  EOF
51
- `curl -v -X DELETE "#{CBin.config.binary_upload_url}/#{@spec.name}/#{@spec.version}"`
53
+ result = @remote_helper.exist?(@spec.name, @spec.version, CBin.config.configuration_env)
54
+ if result
55
+ print <<EOF
56
+ 删除中
57
+ EOF
58
+ @remote_helper.delete(@spec.name, @spec.version, CBin.config.configuration_env)
59
+ end
52
60
  end
61
+
53
62
  #推送二进制
54
- # curl http://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"
55
63
  def curl_zip
56
- zip_file = "#{CBin::Config::Builder.instance.library_file(@spec)}.zip"
64
+ zip_file = CBin::Config::Builder.instance.framework_zip_file(@spec)
57
65
  res = File.exist?(zip_file)
58
- unless res
59
- zip_file = CBin::Config::Builder.instance.framework_zip_file(@spec) + ".zip"
60
- res = File.exist?(zip_file)
61
- end
62
66
  if res
63
67
  print <<EOF
64
- 上传二进制文件
65
- curl #{CBin.config.binary_upload_url} -F "name=#{@spec.name}" -F "version=#{@spec.version}" -F "annotate=#{@spec.name}_#{@spec.version}_log" -F "file=@#{zip_file}"
68
+ 上传二进制文件 #{@spec.name} #{@spec.version} #{CBin.config.configuration_env}
66
69
  EOF
67
- `curl #{CBin.config.binary_upload_url} -F "name=#{@spec.name}" -F "version=#{@spec.version}" -F "annotate=#{@spec.name}_#{@spec.version}_log" -F "file=@#{zip_file}"` if res
70
+ @remote_helper.upload(@spec.name, @spec.version, CBin.config.configuration_env, zip_file) if res
68
71
  end
69
72
 
70
73
  res
@@ -28,11 +28,10 @@ module Pod
28
28
  set_internal_hash_value(USE_SOURCE_PODS, hash_pods_use_source)
29
29
  end
30
30
 
31
- # 0 dev
32
- # 1 debug_iphoneos
33
- # 2 release_iphoneos
31
+ # 1 debug
32
+ # 2 release
34
33
  # 需要在podfile_env 先定义 CONFIGURATION_ENV
35
- def set_configuration_env(env = "dev")
34
+ def set_configuration_env(env = "debug")
36
35
  set_internal_hash_value(CONFIGURATION_ENV, env)
37
36
  end
38
37
  end
@@ -66,7 +65,7 @@ module Pod
66
65
  end
67
66
 
68
67
  def configuration_env
69
- get_internal_hash_value(CONFIGURATION_ENV, "dev") || ENV[CONFIGURATION_ENV] == "dev"
68
+ get_internal_hash_value(CONFIGURATION_ENV, "release") || ENV[CONFIGURATION_ENV] == "release"
70
69
  end
71
70
 
72
71
  private
@@ -8,8 +8,8 @@ Pod::HooksManager.register('cocoapods-fy-bin', :pre_install) do |_context, _|
8
8
  # pod bin repo update 更新二进制私有源
9
9
  Pod::Command::Bin::Repo::Update.new(CLAide::ARGV.new([])).run
10
10
 
11
- # 有插件/本地库 且是dev环境下,默认进入源码白名单 过滤 archive命令
12
- if _context.podfile.plugins.keys.include?('cocoapods-fy-bin') && _context.podfile.configuration_env == 'dev'
11
+ # 有插件/本地库 且是debug环境下,默认进入源码白名单 过滤 archive命令
12
+ if _context.podfile.plugins.keys.include?('cocoapods-fy-bin') && _context.podfile.configuration_env == 'debug'
13
13
  dependencies = _context.podfile.dependencies
14
14
  dependencies.each do |d|
15
15
  # 组件存在external_source,并且external_source有值 并且external_source path不为空 且不为archive状态时 设置组件加载路径
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-fy-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - dr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-25 00:00:00.000000000 Z
11
+ date: 2022-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.0.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: rest-client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.1.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -118,6 +132,7 @@ files:
118
132
  - lib/cocoapods-fy-bin/helpers/framework_builder.rb
119
133
  - lib/cocoapods-fy-bin/helpers/library.rb
120
134
  - lib/cocoapods-fy-bin/helpers/library_builder.rb
135
+ - lib/cocoapods-fy-bin/helpers/remote_helper.rb
121
136
  - lib/cocoapods-fy-bin/helpers/sources_helper.rb
122
137
  - lib/cocoapods-fy-bin/helpers/spec_creator.rb
123
138
  - lib/cocoapods-fy-bin/helpers/spec_files_helper.rb