jenkmq 0.1.0
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 +7 -0
- data/bin/jenkmq +61 -0
- metadata +102 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8bfa78e623efc79c9e6e9c3b5ac4d6e310643bbf
|
4
|
+
data.tar.gz: 9680e54954f2a8dec5e4a5fb563c4b0b6f657ebb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1d41dac44e54bbb5bd26a5c3973de5fa087db2694629a16d55a3b03ee3520df6c834c2a74c49f7feb024cd234baab4f9796555529a5484b1db073672235fa698
|
7
|
+
data.tar.gz: a49ad3feeffc76de95d97585b52d791a84f352638c73e618aa0571862d24efa9213a377c343c449dfab6d817907307a0b2b44e10614b13d82d4ef5979d7bae0e
|
data/bin/jenkmq
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path('../../lib', __FILE__)
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'commander'
|
7
|
+
|
8
|
+
require 'json'
|
9
|
+
require 'rest-client'
|
10
|
+
require 'iron_mq'
|
11
|
+
|
12
|
+
class JenkinsIronMQApplication
|
13
|
+
include Commander::Methods
|
14
|
+
|
15
|
+
def run
|
16
|
+
program :name, 'jenkmq'
|
17
|
+
program :version, '0.1.0'
|
18
|
+
program :description, 'Poll an IronMQ message queue to start jobs'
|
19
|
+
|
20
|
+
command :start do |c|
|
21
|
+
c.syntax = 'jenkmq start'
|
22
|
+
c.description = 'Starts the thing'
|
23
|
+
c.option '--iron_token STRING', String, 'IronMQ token'
|
24
|
+
c.option '--iron_project STRING', String, 'IronMQ project id'
|
25
|
+
c.option '--iron_queue STRING', String, 'IronMQ queue name'
|
26
|
+
c.option '--jenkins_url STRING', String, 'Jenkins url'
|
27
|
+
c.option '--jenkins_token STRING', String, 'Jenkins token'
|
28
|
+
c.action do |args, options|
|
29
|
+
|
30
|
+
raise "--iron_token is required" unless options.iron_token
|
31
|
+
raise "--iron_project is required" unless options.iron_project
|
32
|
+
raise "--quere is required" unless options.iron_queue
|
33
|
+
raise "--jenkins_url is required" unless options.jenkins_url
|
34
|
+
raise "--jenkins_token is required" unless options.jenkins_token
|
35
|
+
ironmq = IronMQ::Client.new(:token => options.iron_token, :project_id => options.iron_project)
|
36
|
+
|
37
|
+
queue = ironmq.queue(options.iron_queue)
|
38
|
+
queue.poll do |msg|
|
39
|
+
body = JSON.parse msg.body
|
40
|
+
|
41
|
+
job_name = body['job_name']
|
42
|
+
job_parameter = body['job_parameter']
|
43
|
+
|
44
|
+
begin
|
45
|
+
jenkins_job_url = "#{options.jenkins_url}/job/#{job_name}"
|
46
|
+
json = JSON.generate job_parameter
|
47
|
+
resp = RestClient.post "#{jenkins_job_url}/build?token=#{options.jenkins_token}", :json => json
|
48
|
+
rescue Exception => e
|
49
|
+
puts "RestClient error - #{e.message}"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
run!
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
JenkinsIronMQApplication.new.run
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jenkmq
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Josh Holtz
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-04-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: commander
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ironmq
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.8'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.8'
|
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: '1.8'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.8'
|
69
|
+
description: Start Jenkins job from IronMQ message - yeah yeah yeah
|
70
|
+
email: me@joshholtz.com
|
71
|
+
executables:
|
72
|
+
- jenkmq
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- bin/jenkmq
|
77
|
+
homepage: https://github.com/joshdholtz/jenkins-ironmq
|
78
|
+
licenses:
|
79
|
+
- MIT
|
80
|
+
metadata: {}
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
requirements: []
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 2.2.2
|
98
|
+
signing_key:
|
99
|
+
specification_version: 4
|
100
|
+
summary: Start Jenkins job from IronMQ message
|
101
|
+
test_files: []
|
102
|
+
has_rdoc:
|