fastlane-plugin-update_jenkins_build 0.1.4 → 0.3.1
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 +5 -5
- data/README.md +11 -1
- data/lib/fastlane/plugin/update_jenkins_build/actions/update_jenkins_build_action.rb +43 -11
- data/lib/fastlane/plugin/update_jenkins_build/helper/update_jenkins_build_helper.rb +11 -5
- data/lib/fastlane/plugin/update_jenkins_build/version.rb +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dd94a14381f6b4065878242ccd53858e717e854015c7a8b8ba74746ee8f5831b
|
4
|
+
data.tar.gz: f0fc857b6e62148a95b9be4f7a9733f8ac178f25081a88f520fe49d2ad703b19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed102c9db15db0ccbc9d42f117dccaf7dc108773ec21c316b721713e1afb6576a4a71a5b0a1a16650fb16ae87683ea6228eed55e7c6cadbf2aaacee5d6b41545
|
7
|
+
data.tar.gz: bf8a574839dc58af1aa288a23d1bf75bac42024d3dc50d390192a70f3b7547ebf91bbd47dfd3de069226a53b86fca0d0c68ef5d544b27733db8d9b84b7bf2f8b
|
data/README.md
CHANGED
@@ -10,6 +10,15 @@ This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To
|
|
10
10
|
fastlane add_plugin update_jenkins_build
|
11
11
|
```
|
12
12
|
|
13
|
+

|
14
|
+
|
15
|
+
### Configure Jenkins
|
16
|
+
|
17
|
+
⚠️ **READ ME FRIST**
|
18
|
+
|
19
|
+
Jenkins version below 2.221, you need disable CSRF Protection in Global Security Settings page or
|
20
|
+
else you must append '-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true' into Jenkins startup argument, [Check more details](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build/issues/2).
|
21
|
+
|
13
22
|
## About update_jenkins_build
|
14
23
|
|
15
24
|
Update build's description of jenkins.
|
@@ -22,6 +31,7 @@ $ bundle exec fastlane action update_jenkins_build
|
|
22
31
|
| Key | Description | Env Var | Default |
|
23
32
|
+--------------+---------------------------------------------+-----------------------------------+---------+
|
24
33
|
| description | the description of current build | UPDATE_JENKINS_BUILD_DESCRIPTION | |
|
34
|
+
| url | the url of jenkins | UPDATE_JENKINS_BUILD_URL | |
|
25
35
|
| project | the name of project(job) | UPDATE_JENKINS_BUILD_PROJECT | |
|
26
36
|
| build_number | the build number of project(job) | UPDATE_JENKINS_BUILD_BUILD_NUMBER | |
|
27
37
|
| user | the user of jenkins if enabled security | UPDATE_JENKINS_BUILD_USER | |
|
@@ -31,7 +41,7 @@ $ bundle exec fastlane action update_jenkins_build
|
|
31
41
|
+-----------------------------------+
|
32
42
|
| update_jenkins_build Return Value |
|
33
43
|
+-----------------------------------+
|
34
|
-
| ture/false
|
44
|
+
| [ture/false, response_body] |
|
35
45
|
+-----------------------------------+
|
36
46
|
```
|
37
47
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'fastlane/action'
|
2
2
|
require_relative '../helper/update_jenkins_build_helper'
|
3
|
+
require 'rubygems'
|
3
4
|
require 'http'
|
4
5
|
require 'uri'
|
5
6
|
|
@@ -9,49 +10,69 @@ module Fastlane
|
|
9
10
|
def self.run(params)
|
10
11
|
@user = params[:user]
|
11
12
|
@password = params[:password]
|
13
|
+
@url = params[:url]
|
12
14
|
@project = params[:project]
|
13
15
|
@build_number = params[:build_number]
|
14
|
-
@description = params[:description]
|
16
|
+
@description = format_description(params[:description])
|
15
17
|
|
16
18
|
url = "#{base_uri}/submitDescription"
|
17
|
-
res = if @user
|
19
|
+
res = if @user || @password
|
18
20
|
HTTP.basic_auth(user: @user, pass: @password)
|
19
21
|
.post(url, form: {description: @description})
|
20
22
|
else
|
21
|
-
HTTP.post(url, form: {
|
23
|
+
HTTP.post(url, form: {
|
24
|
+
"description" => @description,
|
25
|
+
"Jenkins-Crumb" => "234234234234234234" # random value
|
26
|
+
})
|
22
27
|
end
|
23
28
|
|
24
|
-
|
29
|
+
# Submit form succesed it will 302 to the build url.
|
30
|
+
result = res.code == 302 ? 'success' : "#{res.code} fail"
|
25
31
|
|
32
|
+
jenkins_version = Helper::UpdateJenkinsBuildHelper.jenkins_version(@url, @user, @password)
|
26
33
|
params = {
|
27
34
|
title: "Summary for update_jenkins_build #{UpdateJenkinsBuild::VERSION}".green,
|
28
35
|
rows: {
|
29
|
-
|
36
|
+
jenkins_version: jenkins_version,
|
37
|
+
result: result,
|
30
38
|
url: "#{base_uri}/editDescription",
|
31
39
|
auth: @user ? true : false,
|
32
40
|
description: @description,
|
33
41
|
}
|
34
42
|
}
|
35
43
|
|
36
|
-
puts ""
|
37
44
|
puts Terminal::Table.new(params)
|
38
|
-
puts ""
|
39
45
|
|
40
|
-
|
46
|
+
if res.code != 302
|
47
|
+
UI.error "Detect `update_jenkins_build` ran fail."
|
48
|
+
if jenkins_version && Gem::Version.new(jenkins_version) > Gem::Version.new('2.221')
|
49
|
+
UI.error "Because Jenkins v#{jenkins_version} removed 'disable CSRF Protection' option since 2.222,"
|
50
|
+
UI.error "You need append '-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true' into Jenkins startup argument."
|
51
|
+
UI.error "Please check https://github.com/icyleaf/fastlane-plugin-update_jenkins_build/issues/2"
|
52
|
+
else
|
53
|
+
UI.error "Please 'disable CSRF Protection' in 'Global Security Settings' page from Jenkins."
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
[result, res.body]
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.format_description(descripion)
|
61
|
+
descripion.gsub('\n', "\n")
|
41
62
|
end
|
42
63
|
|
43
64
|
def self.base_uri
|
44
|
-
uri = URI(
|
65
|
+
uri = URI(@url)
|
45
66
|
uri.path = "/job/#{@project}/#{@build_number}"
|
46
67
|
uri.to_s
|
47
68
|
end
|
48
69
|
|
49
70
|
def self.return_value
|
50
|
-
"ture/false"
|
71
|
+
"[ture/false, response_body]"
|
51
72
|
end
|
52
73
|
|
53
74
|
def self.return_type
|
54
|
-
:
|
75
|
+
:array
|
55
76
|
end
|
56
77
|
|
57
78
|
def self.example_code
|
@@ -60,6 +81,7 @@ module Fastlane
|
|
60
81
|
description: "AdHoc v1.0 (1.0.1)"
|
61
82
|
)',
|
62
83
|
'update_jenkins_build(
|
84
|
+
url: "http://127.0.0.1:8080/", # specify specific jenkins url
|
63
85
|
project: "foobar", # specify specific project name
|
64
86
|
build_number: 75, # specify specific build number
|
65
87
|
description: "AdHoc v1.0 (1.0.1)",
|
@@ -76,6 +98,10 @@ module Fastlane
|
|
76
98
|
"Update build's description of jenkins"
|
77
99
|
end
|
78
100
|
|
101
|
+
def self.details
|
102
|
+
"MUST disable CSRF in Security configure"
|
103
|
+
end
|
104
|
+
|
79
105
|
def self.available_options
|
80
106
|
[
|
81
107
|
FastlaneCore::ConfigItem.new(key: :description,
|
@@ -83,6 +109,12 @@ module Fastlane
|
|
83
109
|
description: "the description of current build",
|
84
110
|
optional: false,
|
85
111
|
type: String),
|
112
|
+
FastlaneCore::ConfigItem.new(key: :url,
|
113
|
+
env_name: "UPDATE_JENKINS_BUILD_URL",
|
114
|
+
description: "the url of jenkins",
|
115
|
+
default_value: ENV['JENKINS_URL'],
|
116
|
+
optional: true,
|
117
|
+
type: String),
|
86
118
|
FastlaneCore::ConfigItem.new(key: :project,
|
87
119
|
env_name: "UPDATE_JENKINS_BUILD_PROJECT",
|
88
120
|
description: "the name of project(job)",
|
@@ -5,11 +5,17 @@ module Fastlane
|
|
5
5
|
|
6
6
|
module Helper
|
7
7
|
class UpdateJenkinsBuildHelper
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
|
9
|
+
def self.jenkins_version(url, user, password)
|
10
|
+
url = "#{url}/api/json"
|
11
|
+
res = if user && password
|
12
|
+
HTTP.basic_auth(user: user, pass: password)
|
13
|
+
.get(url)
|
14
|
+
else
|
15
|
+
HTTP.get(url)
|
16
|
+
end
|
17
|
+
|
18
|
+
res.headers['X-Jenkins']
|
13
19
|
end
|
14
20
|
end
|
15
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-update_jenkins_build
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icyleaf
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -164,7 +164,7 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
-
description:
|
167
|
+
description:
|
168
168
|
email: icyleaf.cn@gmail.com
|
169
169
|
executables: []
|
170
170
|
extensions: []
|
@@ -180,7 +180,7 @@ homepage: https://github.com/icyleaf/fastlane-plugin-update_jenkins_build
|
|
180
180
|
licenses:
|
181
181
|
- MIT
|
182
182
|
metadata: {}
|
183
|
-
post_install_message:
|
183
|
+
post_install_message:
|
184
184
|
rdoc_options: []
|
185
185
|
require_paths:
|
186
186
|
- lib
|
@@ -195,9 +195,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
195
|
- !ruby/object:Gem::Version
|
196
196
|
version: '0'
|
197
197
|
requirements: []
|
198
|
-
|
199
|
-
|
200
|
-
signing_key:
|
198
|
+
rubygems_version: 3.2.32
|
199
|
+
signing_key:
|
201
200
|
specification_version: 4
|
202
201
|
summary: Update Description of Build
|
203
202
|
test_files: []
|