cocoapods-nexus 0.0.1 → 0.0.2

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: a7a9541ba6b2cab7847ca881391c0531d200a5ea17903d9688a3f5305685da3c
4
- data.tar.gz: fe6507a84828877934b74c77e4935888b32c851a0af134e280c38dee879e79c7
3
+ metadata.gz: b4616b0c7acbb1effc2b43048cbdcd53c6b25ce90df93d29b127280335a0338e
4
+ data.tar.gz: dadfdb2998cf14ec9cb05d13226ba9bf36330f268aa97b496e3f65af4819fefe
5
5
  SHA512:
6
- metadata.gz: 530ea1d9c6eff91257c46d3dc52d9981841d147a728f22cfbd8b62b9ccb9e5258a80cb1a1c17511f9286836ba9652f149004a4f95bc92175436ea588133aa2ff
7
- data.tar.gz: c36596c0e6471a86456178e8df7acdb98dd2c5103184fd2e9fcf9ea0edb6289b3a35a9396d029b2a9fa1086a08cceb26af31febe0093fe938ddc743e4fe34319
6
+ metadata.gz: 037a12224308415f8a587968d28b7fdc236af9c17af4d68e93e9261198c0bad7f2f654da3d82a2833c9dd58493724ebe3e629b90a94d1ffd24c7ab92573f1a26
7
+ data.tar.gz: 281ce5eb70a8306be26877c9f4536eaaaa1924dd478f90fad73d22e0b2b86195ff9d47f6e7f2badbda916162d161557a4989403f502e56288d512f0938c97042
@@ -7,6 +7,8 @@ jobs:
7
7
  build:
8
8
  runs-on: macos-latest
9
9
  steps:
10
+ - uses: actions/checkout@v2
11
+
10
12
  - name: Publish gem
11
13
  uses: dawidd6/action-publish-gem@v1.1.0
12
14
  with:
data/README.md CHANGED
@@ -1,11 +1,87 @@
1
1
  # cocoapods-nexus
2
+ [![Gem Version](https://badge.fury.io/rb/cocoapods-nexus.svg)](https://badge.fury.io/rb/cocoapods-nexus)
2
3
 
3
- A description of cocoapods-nexus.
4
+ 让[CocoaPods](https://cocoapods.org/)支持[Nexus](https://www.sonatype.com/nexus)的插件.
4
5
 
5
- ## Installation
6
+ ## 背景
6
7
 
7
- $ gem install cocoapods-nexus
8
+ 多数管理podspec都是通过git来维护私有库,而随着项目越来越大,cocoapods安装慢、编译慢也成为了问题。常见的解决方式是提前预编译framework来加速。常见的方案有[cocoapods-binary](https://github.com/leavez/cocoapods-binary)、[Rome](https://github.com/tmspzz/Rome)等工具。
8
9
 
9
- ## Usage
10
+ 考虑团队现有的环境,感觉都不适合现状,团队以有nexus服务器,考虑是否能复用nexus,因此整理出该插件。通过nexus来管理podspec和预编译framework。
10
11
 
11
- $ pod spec nexus POD_NAME
12
+ ## 安装
13
+
14
+ ```shell
15
+ $ gem install cocoapods-nexus
16
+ ```
17
+
18
+ ## 使用
19
+
20
+ ### 常用命令
21
+
22
+ #### Add
23
+
24
+ 添加一个nexus的repo,类似**pod repo add**
25
+
26
+ ```shell
27
+ $ pod nexus add RepoName NexusHostUrl
28
+ # 例如:
29
+ # pod nexus add ios_release http://ip:host
30
+ ```
31
+
32
+ #### List
33
+
34
+ 显示已有nexus的repo,类似**pod repo list**
35
+
36
+ ```shell
37
+ $ pod nexus list
38
+ ```
39
+
40
+ #### Push
41
+
42
+ 推送podspec到nexus的repo,类似**pod repo push**。其中artifact为可选参数
43
+
44
+ ```shell
45
+ $ pod nexus push path/to/podspec --url=NexusHostUrl --repo=RepoName --artifact=path/to/预编译文件
46
+
47
+ # 例如:
48
+ # pod nexus push ~/demo.podspec --url=http://ip:host --repo=ios_release --artifact=~/demo.zip
49
+ ```
50
+
51
+ ### Podfile配置
52
+
53
+ 通过如下代码添加nexus的repo
54
+ ```ruby
55
+ plugin 'cocoapods-nexus', :sources => [
56
+ {
57
+ :name => "ios",
58
+ :url => "http://ip:host",
59
+ }
60
+ ]
61
+
62
+ # 其中name为repo的name,url为nexus的地址
63
+ # 添加以上代码后执行pod install,插件会从nexus查询podspec
64
+ ```
65
+
66
+ ## 注意事项
67
+
68
+ ### 1.如何鉴权
69
+
70
+ 考虑到nexus会私有部署、通过[~/.netrc](https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html)文件配置权限
71
+
72
+ ```shell
73
+ machine nexusip
74
+ login nexus_user
75
+ password nexus_password
76
+ ```
77
+
78
+ ### 2.服务器地址
79
+
80
+ 插件关于nexus的相关操作只需要配置ip和host,后续的mount地址默认为nexus,暂时不支持修改。
81
+
82
+ ## 致谢
83
+
84
+ - [cocoapods-art](https://github.com/jfrog/cocoapods-art)
85
+ - [cocoapods-repo-svn](https://github.com/dustywusty/cocoapods-repo-svn)
86
+ - [nexus_api](https://github.com/Cisco-AMP/nexus_api)
87
+ - 等其他
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'cocoapods-nexus'
7
- spec.version = "0.0.1"
7
+ spec.version = "0.0.2"
8
8
  spec.authors = ['mrdaios']
9
9
  spec.email = ['mrdaios@gmail.com']
10
10
  spec.description = 'a cocoapods plugin for nexus.'
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_runtime_dependency 'cocoapods', '>= 1.9.3'
22
22
  spec.add_runtime_dependency 'rest-client', '~> 2.1.0'
23
+ spec.add_runtime_dependency 'versionomy', '~> 0.5.0'
23
24
 
24
25
  spec.add_development_dependency 'bundler', '~> 1.3'
25
26
  spec.add_development_dependency 'rake', '~> 13.0'
@@ -1,5 +1,6 @@
1
1
  require 'cocoapods-nexus/api'
2
2
  require 'cocoapods-nexus/downloader'
3
+ require 'versionomy'
3
4
 
4
5
  module Pod
5
6
  class NexusSource < Source
@@ -86,12 +87,12 @@ module Pod
86
87
  # 解析附件downloadUrl
87
88
  def parse_artifacte_asset_url(artifacte, asset_type)
88
89
  asset = artifacte['assets'].select { |asset| asset['path'].end_with?(asset_type) }.first
89
- asset['downloadUrl'] unless asset['downloadUrl'].nil?
90
- end
90
+ asset['downloadUrl'] if asset && asset['downloadUrl'].nil?
91
+ end
91
92
 
92
93
  def nexus_find_artifacte(spec_name:, spec_version:)
93
94
  artifactes = nexus_api.search_maven_component(artifact_id: spec_name)
94
- artifacte = artifactes.select { |artifacte| artifacte['version'].start_with?(spec_version) }.sort_by { |artifacte| artifacte['version'].downcase }.last
95
+ artifacte = artifactes.select { |artifacte| artifacte['version'].start_with?(spec_version) }.sort_by { |artifacte| Versionomy.parse(artifacte['version'])}.last
95
96
  artifacte
96
97
  end
97
98
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-nexus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mrdaios
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-04 00:00:00.000000000 Z
11
+ date: 2020-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: versionomy
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.5.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -102,7 +116,7 @@ homepage: https://github.com/mrdaios/cocoapods-nexus
102
116
  licenses:
103
117
  - MIT
104
118
  metadata: {}
105
- post_install_message:
119
+ post_install_message:
106
120
  rdoc_options: []
107
121
  require_paths:
108
122
  - lib
@@ -117,8 +131,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
131
  - !ruby/object:Gem::Version
118
132
  version: '0'
119
133
  requirements: []
120
- rubygems_version: 3.0.3
121
- signing_key:
134
+ rubygems_version: 3.1.4
135
+ signing_key:
122
136
  specification_version: 4
123
137
  summary: 运行时修改spec的source为nexus中的预编译的zip.
124
138
  test_files: