jenkins2-api 0.0.5 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +124 -0
  3. data/lib/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cebe4d3e619b2cb154314f60490e055e180b0fd4
4
- data.tar.gz: aee05428b659c60ed2c3271788e19b727f792ddf
3
+ metadata.gz: ce596bcac88f03c2226d88a297f7922760a599f7
4
+ data.tar.gz: 143eb32b438a562b5066f028264f5c68164799de
5
5
  SHA512:
6
- metadata.gz: 451ad5c493b71ec0bfe0fac7d448aa73701ba96648b79e96ea2d7b19c464c22c3424988483b9c8991fe0054175a57485f578dd576761b952186d86a48bfb6256
7
- data.tar.gz: 9fcc75cafafa59b96c3acfaf0553850124c6b3fbc7925ebc95dd6bb06982bd9e9d8c700dd648e787862ce9c29d37ab46a8c55854b0c576f48f2eeba604a5b373
6
+ metadata.gz: 455bb82a3071c90be0c389484027642d0559ab6f57cf98ee45cbd990e0e3eab8451298a792ad2f885dc427fcb278f96445ec8bbde8a33fccf85fa266b69c8b52
7
+ data.tar.gz: b6604ce550b178f1837ca48cc2cda2557dcdb01998cfe3eaff05d73d80b16045f7911ddf9490e38b948d71bfe2b19d8a0e5f4447db4fdaca500182e537d59845
data/README.md CHANGED
@@ -0,0 +1,124 @@
1
+ [![Gem Version](https://badge.fury.io/rb/jenkins2-api.svg)](https://badge.fury.io/rb/jenkins2-api)
2
+
3
+ # API Client for Jenkins2
4
+
5
+ ## Install
6
+
7
+ ```
8
+ gem install jenkins2-api
9
+ ```
10
+
11
+ ## Executable
12
+
13
+ You can specify server and credentials with parameters:
14
+
15
+ ```
16
+ --password
17
+ --username
18
+ --server
19
+ ```
20
+
21
+ Or with environment variables:
22
+
23
+ ```
24
+ JENKINS_SERVER=''
25
+ JENKINS_USERNAME=''
26
+ JENKINS_PASSWORD=''
27
+ ```
28
+
29
+ Password can be a password or an API token from `/user/{user}/configure`
30
+
31
+ ### List computers / nodes
32
+
33
+ ```
34
+ # List all nodes
35
+ jenkins2api node all
36
+
37
+ # Only slaves
38
+ jenkins2api node slaves
39
+ ```
40
+
41
+ ### Get the name of the slave where a build was executed
42
+
43
+ ```
44
+ jenkins2api build slave-name jobname buildid
45
+ ```
46
+
47
+ If you build slave names contain an AWS EC2 ID, you you add `--ec2id` parameter to match for it
48
+ and then it will print out only the ec2 instance id.
49
+
50
+ ```
51
+ jenkins2api build slave-name jobname buildid --ec2id
52
+ ```
53
+
54
+ ## Ruby side
55
+
56
+ All response are a generic Jenkins response. There are no wrapper classes around them.
57
+
58
+ Create a new client:
59
+
60
+ ```
61
+ require 'jenkins2-api'
62
+
63
+ client = Jenkins2API::Client.new(
64
+ :server => 'http://jenkins.example.com/',
65
+ :username => 'myusername',
66
+ :password => 'myapitoken'
67
+ )
68
+ ```
69
+
70
+ To list all the available jobs:
71
+
72
+ ```
73
+ jobs = client.job.list
74
+ jobs.each do |job|
75
+ puts "[%10s] #{job['name']}" % [job['color']]
76
+ end
77
+ ```
78
+
79
+ List all node:
80
+
81
+ ```
82
+ nodes = client.node.all
83
+ puts "Total Executors: #{nodes['totalExecutors']}"
84
+ puts "Busy Executors: #{nodes['busyExecutors']}"
85
+
86
+ puts "Executors:"
87
+ nodes['computer'].each do |computer|
88
+ type = 'slave'
89
+ type = 'master' if computer['_class'] == 'hudson.model.Hudson$MasterComputer'
90
+ puts " [%7s] #{computer['displayName']}" % [type]
91
+ end
92
+ ```
93
+
94
+ Get a specific job's latest build information:
95
+
96
+ ```
97
+ build = client.build.latest('my-job')
98
+
99
+ puts "Latest build: #{build['id']}"
100
+ puts "Result: #{build['result']}"
101
+ puts "URL: #{build['url']}"
102
+ logfiles = build['artifacts'].select { |artifact| artifact['fileName'].match(/.*\.xml$/) }
103
+
104
+ slave_name = client.build.slave_name('my-job', build['id'])
105
+
106
+ puts "Build on: #{slave_name}"
107
+ ```
108
+
109
+ Process junit reports:
110
+
111
+ ```
112
+ failed_tests = []
113
+ logfiles.each do |file|
114
+ results = Nokogiri::XML(client.artifact.get('my-job', build['id'], file))
115
+ failed_tests += results.xpath('//testcase').select do |testcase|
116
+ !testcase.children.empty?
117
+ end
118
+ end
119
+
120
+ puts "Failed tests:" unless failed_tests.empty?
121
+ failed_tests.each do |failed|
122
+ puts " [✘] #{failed['name']} on #{failed['classname']}"
123
+ end
124
+ ```
data/lib/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Jenkins2API
2
- VERSION = '0.0.5'
2
+ VERSION = '1.0.1'
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkins2-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Balazs Nadasdi
@@ -45,7 +45,7 @@ files:
45
45
  - lib/jenkins2-api.rb
46
46
  - lib/thor_command.rb
47
47
  - lib/version.rb
48
- homepage: https://github.com/Yitsushi/jenkins2-api
48
+ homepage: https://yitsushi.github.io/jenkins2-api/
49
49
  licenses:
50
50
  - MIT
51
51
  metadata: {}