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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/bin/jenkmq +61 -0
  3. 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: