fastlane-plugin-ci_changelog 0.5.1 → 0.5.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
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6929c151e19d4d869c4420cb5d0416cf9dfa597b5a46cd0ecd98719b1270b564
|
4
|
+
data.tar.gz: de27968b1da6d06eac4e0df8440982f180bdeb4e3f51fa1ab443e0c21e9e512b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f427a4c1e91bb112d469e7d78727e840149a527655e9483dfe5861618e654b392339c0c3ef4349aabce7f93c043e9e6b5ef401fcc29ba7a310c187169c821ed9
|
7
|
+
data.tar.gz: f6f956dc9b13b175869f3cabb88bfa94ffac97cfca3396faf94e627840ff47ea7f836f494dc84a04c1941353037fa5cdc52fbbaa020a79bf02c117664a4bf356
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ fastlane add_plugin ci_changelog
|
|
12
12
|
|
13
13
|
## About ci_changelog
|
14
14
|
|
15
|
-
Automate generate changelog between previous and the latest commit of
|
15
|
+
Automate generate changelog between previous and the latest commit of SCM during the CI services.
|
16
16
|
|
17
17
|
### Available CI system:
|
18
18
|
|
@@ -22,7 +22,7 @@ Automate generate changelog between previous and the latest commit of scm during
|
|
22
22
|
|
23
23
|
## Configuration
|
24
24
|
|
25
|
-
```
|
25
|
+
```text
|
26
26
|
$ fastlane action ci_changelog
|
27
27
|
+------------------------------+---------+--------------+
|
28
28
|
| Used plugins |
|
@@ -68,7 +68,6 @@ Loading documentation for ci_changelog:
|
|
68
68
|
| CICL_CHANGELOG | the json formatted changelog of CI (datetime, message, author and email) |
|
69
69
|
+----------------+--------------------------------------------------------------------------+
|
70
70
|
Access the output values using `lane_context[SharedValues::VARIABLE_NAME]`
|
71
|
-
|
72
71
|
```
|
73
72
|
|
74
73
|
## Example
|
@@ -71,12 +71,13 @@ module Fastlane
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def self.fetch_jenkins_changelog!
|
74
|
-
|
74
|
+
changelog = []
|
75
75
|
|
76
|
+
build_branch = ENV['GIT_BRANCH']
|
76
77
|
build_number = ENV['BUILD_NUMBER'].to_i
|
77
78
|
loop do
|
78
79
|
begin
|
79
|
-
build_url = "#{ENV['JOB_URL']}
|
80
|
+
build_url = "#{ENV['JOB_URL']}#{build_number}/api/json"
|
80
81
|
res =
|
81
82
|
if Helper::CiChangelogHelper.determine_jenkins_basic_auth?
|
82
83
|
HTTP.basic_auth(user: @params.fetch(:jenkins_user), pass: @params.fetch(:jenkins_token))
|
@@ -86,15 +87,21 @@ module Fastlane
|
|
86
87
|
end
|
87
88
|
|
88
89
|
if res.code == 200
|
89
|
-
build_status, data = Helper::CiChangelogHelper.
|
90
|
-
|
90
|
+
build_status, data = Helper::CiChangelogHelper.dump_jenkins_commits(res.body, build_branch)
|
91
|
+
UI.verbose("Fetching changelog #{build_url}")
|
92
|
+
UI.verbose("- Branch #{build_branch}")
|
93
|
+
UI.verbose("- Status #{build_status}")
|
94
|
+
UI.verbose("- Changelog #{data}")
|
95
|
+
|
96
|
+
changelog.concat(data) unless data.empty?
|
97
|
+
|
91
98
|
break if build_status == true
|
92
99
|
end
|
93
100
|
|
94
101
|
build_number -= 1
|
95
102
|
|
96
103
|
break if build_number <= 0
|
97
|
-
rescue
|
104
|
+
rescue HTTP::Error
|
98
105
|
# NOTE: break out of loop if build setted keep max builds count
|
99
106
|
break
|
100
107
|
end
|
@@ -103,7 +110,7 @@ module Fastlane
|
|
103
110
|
# NOTE: Auto detect the range changelog of build fail.
|
104
111
|
# commits = Helper::CiChangelogHelper.git_commits(ENV['GIT_PREVIOUS_SUCCESSFUL_COMMIT']) if Helper.is_test? && commits.empty?
|
105
112
|
|
106
|
-
Helper::CiChangelogHelper.store_sharedvalue(SharedValues::CICL_CHANGELOG,
|
113
|
+
Helper::CiChangelogHelper.store_sharedvalue(SharedValues::CICL_CHANGELOG, changelog.to_json)
|
107
114
|
end
|
108
115
|
|
109
116
|
def self.fetch_jenkins_env!
|
@@ -128,6 +135,9 @@ module Fastlane
|
|
128
135
|
|
129
136
|
if res.code == 200
|
130
137
|
build_status, data = Helper::CiChangelogHelper.dump_gitlab_commits(res.body)
|
138
|
+
UI.verbose("Fetching changelog #{build_url}")
|
139
|
+
UI.verbose("- Status #{build_status}")
|
140
|
+
UI.verbose("- Changelog #{data}")
|
131
141
|
|
132
142
|
if build_status == true
|
133
143
|
commits = data if commits.empty?
|
@@ -12,10 +12,15 @@ module Fastlane
|
|
12
12
|
git_logs.split("\n")
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.
|
15
|
+
def self.dump_jenkins_commits(body, branch)
|
16
16
|
json = JSON.parse(body)
|
17
|
+
result = json['result'] == 'SUCCESS' ? true : false
|
18
|
+
|
19
|
+
# return if previous build do not equal to current build branch.
|
20
|
+
return [result, []] unless jenkins_use_same_branch?(json, branch)
|
21
|
+
|
17
22
|
# TODO: It must use reverse_each to correct the changelog
|
18
|
-
|
23
|
+
commits = json['changeSet']['items'].each_with_object([]) do |item, obj|
|
19
24
|
obj.push({
|
20
25
|
id: item['commitId'],
|
21
26
|
date: item['date'],
|
@@ -26,11 +31,7 @@ module Fastlane
|
|
26
31
|
})
|
27
32
|
end
|
28
33
|
|
29
|
-
|
30
|
-
[true, commit]
|
31
|
-
else
|
32
|
-
[false, commit]
|
33
|
-
end
|
34
|
+
[result, commits]
|
34
35
|
end
|
35
36
|
|
36
37
|
def self.dump_gitlab_commits(body)
|
@@ -79,6 +80,19 @@ module Fastlane
|
|
79
80
|
return true
|
80
81
|
end
|
81
82
|
|
83
|
+
def self.jenkins_use_same_branch?(json, name)
|
84
|
+
same_branch = false
|
85
|
+
json['actions'].each do |item|
|
86
|
+
if revision = item['lastBuiltRevision']
|
87
|
+
revision['branch'].each do |branch|
|
88
|
+
same_branch = true if branch['name'].end_with?(name)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
same_branch
|
94
|
+
end
|
95
|
+
|
82
96
|
def self.store_sharedvalue(key, value)
|
83
97
|
Actions.lane_context[key] = value
|
84
98
|
ENV[key.to_s] = value
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-ci_changelog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icyleaf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -139,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
141
|
requirements: []
|
142
|
-
|
143
|
-
rubygems_version: 2.6.12
|
142
|
+
rubygems_version: 3.0.3
|
144
143
|
signing_key:
|
145
144
|
specification_version: 4
|
146
145
|
summary: Automate generate changelog between previous build failed and the latest
|