jenkins-capistrano 0.0.6 → 0.0.7

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 08e7f0caa243bf076670aee6c701dea64f471263
4
+ data.tar.gz: c4bf4f53e44317c8c51d503e6d68343a5deeb05f
5
+ SHA512:
6
+ metadata.gz: 42bf4c7d1b3d24563f8844bcfe553116c464260748aa403bd4bd63b2c6eef2b71f93ed5cdeb478c0e3a805e2b7ce055f4829f8cef31e41cefe78d5d50195c7c0
7
+ data.tar.gz: a4af671c54adbeb70e9c624eef73b057f44aef1c9b0ac4b7200507defbea1daffea715cf1646d2fb25f6328fedc6b64dae6db1970052fb720eb7e803d634407e
@@ -0,0 +1,218 @@
1
+ # jenkins-capistrano
2
+
3
+ The capistrano tasks for Jenkins CI Server. Supports to manage following things:
4
+
5
+ * Job
6
+ * Node
7
+ * View
8
+ * Plugins(Experimental)
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile::
13
+
14
+ gem 'jenkins-capistrano'
15
+
16
+ And then execute::
17
+
18
+ $ bundle
19
+
20
+ Or install it yourself as::
21
+
22
+ $ gem install jenkins-capistrano
23
+
24
+ ## Example
25
+
26
+ See [example directory](https://github.com/cynipe/jenkins-capistrano/tree/develop/example>) or following instructions.
27
+
28
+ ### Job Configuration
29
+
30
+ The following code will creates or updates Jenkins jobs before each deploy task:
31
+
32
+ config directory structure(name your config.xml as a job name):
33
+ ```
34
+ config
35
+ ├── deploy.rb
36
+ └── jenkins
37
+    └── jobs
38
+    ├── job-name1.xml
39
+    ├── job-name2.xml
40
+    └── job-name3.xml
41
+ ```
42
+
43
+ deploy.rb:
44
+ ```ruby
45
+ set :application, "your-awesome-app"
46
+ set :scm, :git
47
+ set :repository, "https://github.com/your/repository.git"
48
+
49
+ set :jenkins_host, 'http://localhost:8080'
50
+ #set :jenkins_username, '' # default empty
51
+ #set :jenkins_password, '' # default empty
52
+ #set :jenkins_job_config_dir, 'config/jenkins/jobs'
53
+
54
+ before 'deploy', 'jenkins:deploy_jobs'
55
+ ```
56
+
57
+ #### Want to disabling some jobs for specific environment?
58
+
59
+ Since 0.0.5, you can disabling jobs using `disabled_jobs` option.
60
+ Use this option with [multistage-extension](<https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension>).
61
+
62
+ Put the following line into `config/deploy/<env>.rb`:
63
+ ```
64
+ set :disabled_jobs, %w(job1 job2)
65
+ ```
66
+
67
+
68
+ ### Node Configuration
69
+
70
+ config directory structure(name your json file as a node name):
71
+ ```
72
+ config
73
+ ├── deploy.rb
74
+ └── jenkins
75
+    └── nodes
76
+    ├── node1.json
77
+    ├── node2.json
78
+    └── node3.json
79
+ ```
80
+
81
+ sample node configuration:
82
+ ```json
83
+ {
84
+ "name" : "example",
85
+ "type" : "hudson.slaves.DumbSlave$DescriptorImpl",
86
+ "description" : "some description",
87
+ "executors" : 2,
88
+ "labels" : "linux, java, ruby",
89
+ "slave_host" : "example.com",
90
+ "slave_port" : 22,
91
+ "slave_user" : "jenkins",
92
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
93
+ "slave_fs" : "/home/jenkins",
94
+ "exclusive" : true,
95
+ "java_path": "/opt/java/bin/java",
96
+ "jvm_options": "-Xmx512M",
97
+ "env_vars": {
98
+ "key1": "val1",
99
+ "key2": "val2"
100
+ }
101
+ }
102
+ ```
103
+
104
+ deploy.rb:
105
+ ```ruby
106
+ set :application, "your-awesome-app"
107
+ set :scm, :git
108
+ set :repository, "https://github.com/your/repository.git"
109
+
110
+ set :jenkins_host, 'http://localhost:8080'
111
+ # set :jenkins_username, '' # default empty
112
+ # set :jenkins_password, '' # default empty
113
+ # set :jenkins_node_config_dir, 'config/jenkins/nodes'
114
+
115
+ before 'deploy', 'jenkins:config_nodes'
116
+ ```
117
+
118
+ ### View Configuration
119
+
120
+ config directory structure(name your json file as a node name):
121
+ ```
122
+ config
123
+ ├── deploy.rb
124
+ └── jenkins
125
+    └── views
126
+    ├── view1.xml
127
+    ├── view2.xml
128
+    └── view3.xml
129
+ ```
130
+
131
+ sample view configuration:
132
+ ```xml
133
+ <listView>
134
+ <name>view1</name>
135
+ <filterExecutors>false</filterExecutors>
136
+ <filterQueue>false</filterQueue>
137
+ <properties class="hudson.model.View$PropertyList"/>
138
+ <jobNames class="tree-set">
139
+ <comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../hudson.plugins.view.dashboard.Dashboard/jobNames/comparator"/>
140
+ </jobNames>
141
+ <jobFilters/>
142
+ <columns>
143
+ <hudson.views.StatusColumn/>
144
+ <hudson.views.WeatherColumn/>
145
+ <hudson.views.JobColumn/>
146
+ <hudson.views.LastSuccessColumn/>
147
+ <hudson.views.LastFailureColumn/>
148
+ <hudson.views.LastDurationColumn/>
149
+ <hudson.views.BuildButtonColumn/>
150
+ </columns>
151
+ <includeRegex>job.*</includeRegex>
152
+ </listView>
153
+ ```
154
+
155
+ deploy.rb:
156
+ ```ruby
157
+ set :application, "your-awesome-app"
158
+ set :scm, :git
159
+ set :repository, "https://github.com/your/repository.git"
160
+
161
+ set :jenkins_host, 'http://localhost:8080'
162
+ # set :jenkins_username, '' # default empty
163
+ # set :jenkins_password, '' # default empty
164
+ # set :jenkins_node_config_dir, 'config/jenkins/nodes'
165
+
166
+ before 'deploy', 'jenkins:config_views'
167
+ ```
168
+
169
+ #### Don't know how to write config.xml for view?
170
+
171
+ Create or configure the view you want to manage via usual operation through the Jenkins UI.
172
+ Then, open the `JENKINS_HOME/config.xml` and copy the desired configuration from `<views>` section, and
173
+ ommit `<owner class="hudson" reference="../../.."/>` line.
174
+
175
+ ### Plugin Configuration(experimental)
176
+
177
+ #### Note
178
+
179
+ This feature is may change its API without any notice.
180
+ Use at your own risk.
181
+
182
+ deploy.rb:
183
+ ```ruby
184
+ set :application, "your-awesome-app"
185
+ set :scm, :git
186
+ set :repository, "https://github.com/your/repository.git"
187
+
188
+ set :jenkins_plugins, %w(cron_column envinject join)
189
+ # you can specify version as follows:
190
+ #set :jenkins_plugins, %w(cron_column@1.1.2 envinject join@1.0.0)
191
+ set :jenkins_install_timeout, 60 * 5 # default: 5min
192
+ set :jenkins_plugin_enable_update, false # dafault: false
193
+ set :jenkins_plugin_enable_restart, false # default: false
194
+
195
+ before 'deploy', 'jenkins:install_plugins'
196
+ ```
197
+
198
+ ## Release Notes
199
+
200
+ ### 0.0.7
201
+ * Fix disable_job is not working with recent version of Jenkins ([#9](https://github.com/cynipe/jenkins-capistrano/pull/9))
202
+
203
+ ### 0.0.6
204
+ * Support view management ([726ad3ef](<https://github.com/cynipe/jenkins-capistrano/commit/726ad3ef817ba15a2d66503ce0dd4bc961ed92e2))
205
+ * Support plugin management(Experimental) ([4d9964c0](https://github.com/cynipe/jenkins-capistrano/commit/4d9964c00ff95798915484ceb8b5c837b2aa03e8))
206
+
207
+ ### 0.0.5.2
208
+ * Fix cgi library loading error
209
+
210
+ ## Contributing
211
+
212
+ 1. Fork it
213
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
214
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
215
+ 4. Push to the branch (`git push origin my-new-feature`)
216
+ 5. Create new Pull Request
217
+
218
+ [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/e76247570c952ad3205ca7d6d3f0f7b5 "githalytics.com")](http://githalytics.com/cynipe/jenkins-capistrano)
@@ -0,0 +1,4 @@
1
+ tmp/
2
+ .bundle/
3
+ .librarian/
4
+
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ require 'capistrano_colors'
3
+ require 'capistrano/ext/multistage'
4
+ require 'railsless-deploy'
5
+ require 'jenkins-capistrano'
6
+
7
+ default_run_options[:pty] = true
8
+ load 'config/deploy'
9
+
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'railsless-deploy'
4
+ gem 'jenkins-capistrano'
@@ -0,0 +1,32 @@
1
+ # jenkins-capistrano example
2
+
3
+ jenkins-capistranoを使って、master-slave構成のJenkinsに以下のことを行う設定例
4
+
5
+ * バッチで必要なジョブ
6
+ * バッチを実際に実行するためのスレーブノードの登録
7
+ * バッチプログラム(binディレクトリ)のデプロイ
8
+
9
+ ## 前提
10
+
11
+ * ローカルにruby1.8.7+が入っていること
12
+ * 各スレーブノードに`/opt/hello`ディレクトリがあること
13
+ * `/opt/hello`ディレクトリにjenkinsユーザが書き込み権限があること
14
+ * jenkinsユーザがマスターノードからスレーブノードに公開鍵認証で接続できること
15
+
16
+ ## デプロイの仕方
17
+
18
+ 本番環境:
19
+ ```
20
+ $ script/deploy production
21
+ ```
22
+
23
+ ステージング環境:
24
+ ```
25
+ $ script/deploy staging
26
+ ```
27
+
28
+ 開発環境:
29
+ ```
30
+ $ script/deploy
31
+ ```
32
+
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+
3
+ echo 'hello'
@@ -0,0 +1,35 @@
1
+ set :application, 'hello'
2
+ set :repository, 'http://example.org/your/repository.git'
3
+ set :scm, :git
4
+ set :branch, 'develop' # デフォルトブランチの設定
5
+ set :deploy_via, :copy # ローカルクローンしてリモートにコピー(リモートでクローンしないように)
6
+ set :deploy_to, "/opt/#{application}"
7
+ set :use_sudo, false
8
+ set :keep_releases, 5
9
+
10
+ set :stages, %w(develop staging production)
11
+ set :default_stage, 'develop'
12
+
13
+ set :user, 'jenkins'
14
+ # 公開鍵認証を推奨
15
+ #set :password do
16
+ # ENV['DEPLOY_PASSWORD'] || Capistrano::CLI.password_prompt("linux user password[#{user}]: ")
17
+ #end
18
+
19
+ set :jenkins_username, user
20
+ # 必要であれば
21
+ #set :jenkins_password do
22
+ # ENV['DEPLOY_PASSWORD'] || Capistrano::CLI.password_prompt("jenkins server password[#{user}]: ")
23
+ #end
24
+
25
+ before 'deploy', 'deploy:check'
26
+ after 'deploy', 'jenkins:deploy_jobs'
27
+ after 'deploy', 'jenkins:deploy_jobs'
28
+ after 'deploy', 'deploy:cleanup'
29
+
30
+ # ローカルにgitコマンドがあること
31
+ depend :local, :command, 'git'
32
+ # リモートにデプロイ用ディレクトリがあること
33
+ depend :remote, :directory, deploy_to
34
+ # jenkinsユーザで書き込みができること
35
+ depend :remote, :writable, deploy_to
@@ -0,0 +1,5 @@
1
+ # ブランチはconfig/deploy.rbの設定に従う
2
+ role :batch, 'dev-slave01.local'
3
+ set :jenkins_host, 'dev-master.local'
4
+ set :jenkins_node_config_dir, 'config/jenkins/nodes/develop'
5
+
@@ -0,0 +1,9 @@
1
+ set :branch, 'v1.0.0'
2
+
3
+ role :batch, 'prod-slave01.local'
4
+ # 複数ノードの場合
5
+ #role :batch, 'prod-slave02.local'
6
+ #role :batch, 'prod-slave03.local'
7
+
8
+ set :jenkins_host, 'prod-master.local'
9
+ set :jenkins_node_config_dir, 'config/jenkins/nodes/production'
@@ -0,0 +1,10 @@
1
+ set :branch, 'release/1.0.1'
2
+
3
+ role :batch, 'stg-slave01.local'
4
+ # 複数ノードの場合
5
+ #role :batch, 'stg-slave02.local'
6
+ #role :batch, 'stg-slave03.local'
7
+
8
+ set :jenkins_host, 'stg-master.local'
9
+ set :jenkins_node_config_dir, 'config/jenkins/nodes/staging'
10
+
File without changes
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><project>
2
+ <actions/>
3
+ <description/>
4
+ <keepDependencies>false</keepDependencies>
5
+ <properties/>
6
+ <scm class="hudson.scm.NullSCM"/>
7
+ <canRoam>true</canRoam>
8
+ <disabled>false</disabled>
9
+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
10
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
11
+ <jdk>Default</jdk>
12
+ <triggers class="vector">
13
+ <hudson.triggers.TimerTrigger>
14
+ <spec>0 8 * * *</spec>
15
+ </hudson.triggers.TimerTrigger>
16
+ </triggers>
17
+ <concurrentBuild>false</concurrentBuild>
18
+ <builders>
19
+ <hudson.tasks.Shell>
20
+ <command>cd /opt/hello/current &amp;&amp; bin/hello</command>
21
+ </hudson.tasks.Shell>
22
+ </builders>
23
+ <publishers>
24
+ <hudson.tasks.Mailer>
25
+ <recipients>opsadmin@example.com</recipients>
26
+ <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>
27
+ <sendToIndividuals>false</sendToIndividuals>
28
+ </hudson.tasks.Mailer>
29
+ </publishers>
30
+ </project>
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave1",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "dev-slave01.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "production",
15
+ }
16
+ }
17
+
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave1",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "prod-slave01.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "production",
15
+ }
16
+ }
17
+
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave1",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "prod-slave02.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "production",
15
+ }
16
+ }
17
+
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave1",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "prod-slave03.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "production",
15
+ }
16
+ }
17
+
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave1",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "stg-slave01.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "staging",
15
+ }
16
+ }
17
+
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave2",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "stg-slave02.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "staging",
15
+ }
16
+ }
17
+
@@ -0,0 +1,17 @@
1
+ {
2
+ "description" : "Slave3",
3
+ "slave_fs" : "/home/jenkins",
4
+ "executors" : 5,
5
+ "exclusive" : true,
6
+ "labels" : "hello",
7
+ "slave_host" : "stg-slave03.local",
8
+ "slave_port" : 22,
9
+ "slave_user" : "jenkins",
10
+ "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
11
+ "jvm_options" : "-Dfile.encoding=UTF-8",
12
+ "env_vars": {
13
+ "LANG" : "ja_JP.UTF-8",
14
+ "ENVIRONMENT" : "staging",
15
+ }
16
+ }
17
+
@@ -0,0 +1,10 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ (gem spec bundler -v '~> 1.2.0' > /dev/null 2>&1) || gem install bundler -v '~> 1.2.0' --no-rdoc --no-ri
6
+
7
+ # 常に綺麗な設定で行うように
8
+ rm -rf .bundle/config
9
+ bundle install --binstubs .bundle/bin --path .bundle
10
+
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ script/bootstrap || exit 1
6
+ bundle exec cap "$@" deploy
@@ -27,7 +27,7 @@ module Jenkins
27
27
 
28
28
  def disable_job(name)
29
29
  res = self.class.post("/job/#{CGI.escape(name)}/disable")
30
- raise ServerError, parse_error_message(res) unless res.code.to_i == 200
30
+ raise ServerError, parse_error_message(res) unless res.code.to_i == 200 || res.code.to_i == 302
31
31
  rescue => e
32
32
  raise ServerError, "Failed to create job: #{name}, make sure you have specified auth info properly"
33
33
  end
@@ -1,5 +1,5 @@
1
1
  module Jenkins
2
2
  module Capistrano
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkins-capistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.0.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - cynipe
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-16 00:00:00.000000000 Z
11
+ date: 2013-10-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: capistrano
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: httparty
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,49 +41,43 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: hpricot
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: pry
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  description: The capistrano tasks for Jenkins CI Server
@@ -101,8 +90,28 @@ files:
101
90
  - .gitignore
102
91
  - Gemfile
103
92
  - LICENSE
104
- - README.rst
93
+ - README.md
105
94
  - Rakefile
95
+ - example/.gitignore
96
+ - example/Capfile
97
+ - example/Gemfile
98
+ - example/README.md
99
+ - example/bin/hello
100
+ - example/config/deploy.rb
101
+ - example/config/deploy/develop.rb
102
+ - example/config/deploy/production.rb
103
+ - example/config/deploy/staging.rb
104
+ - example/config/jenkins/jobs/.gitkeep
105
+ - example/config/jenkins/jobs/hello.xml
106
+ - example/config/jenkins/nodes/develop/dev-slave01.json
107
+ - example/config/jenkins/nodes/production/prod-slave01.json
108
+ - example/config/jenkins/nodes/production/prod-slave02.json
109
+ - example/config/jenkins/nodes/production/prod-slave03.json
110
+ - example/config/jenkins/nodes/staging/stg-slave01.json
111
+ - example/config/jenkins/nodes/staging/stg-slave02.json
112
+ - example/config/jenkins/nodes/staging/stg-slave03.json
113
+ - example/script/bootstrap
114
+ - example/script/deploy
106
115
  - jenkins-capistrano.gemspec
107
116
  - lib/jenkins-capistrano.rb
108
117
  - lib/jenkins-capistrano/client.rb
@@ -114,27 +123,25 @@ files:
114
123
  - lib/jenkins-capistrano/version.rb
115
124
  homepage: https://github.com/cynipe/jenkins-capistrano
116
125
  licenses: []
126
+ metadata: {}
117
127
  post_install_message:
118
128
  rdoc_options: []
119
129
  require_paths:
120
130
  - lib
121
131
  required_ruby_version: !ruby/object:Gem::Requirement
122
- none: false
123
132
  requirements:
124
- - - ! '>='
133
+ - - '>='
125
134
  - !ruby/object:Gem::Version
126
135
  version: '0'
127
136
  required_rubygems_version: !ruby/object:Gem::Requirement
128
- none: false
129
137
  requirements:
130
- - - ! '>='
138
+ - - '>='
131
139
  - !ruby/object:Gem::Version
132
140
  version: '0'
133
141
  requirements: []
134
142
  rubyforge_project:
135
- rubygems_version: 1.8.24
143
+ rubygems_version: 2.0.3
136
144
  signing_key:
137
- specification_version: 3
145
+ specification_version: 4
138
146
  summary: ''
139
147
  test_files: []
140
- has_rdoc:
data/README.rst DELETED
@@ -1,216 +0,0 @@
1
- ==================
2
- jenkins-capistrano
3
- ==================
4
-
5
- The capistrano tasks for Jenkins CI Server. Supports to manage following things:
6
-
7
- * Job
8
- * Node
9
- * View
10
- * Plugins(Experimental)
11
-
12
- Installation
13
- ============
14
-
15
- Add this line to your application's Gemfile::
16
-
17
- gem 'jenkins-capistrano'
18
-
19
- And then execute::
20
-
21
- $ bundle
22
-
23
- Or install it yourself as::
24
-
25
- $ gem install jenkins-capistrano
26
-
27
- Example
28
- =======
29
-
30
- Job Configuration
31
- ~~~~~~~~~~~~~~~~~
32
-
33
- The following code will creates or updates Jenkins jobs before each deploy task:
34
-
35
- config directory structure(name your config.xml as a job name)::
36
-
37
- config
38
- ├── deploy.rb
39
- └── jenkins
40
-    └── jobs
41
-    ├── job-name1.xml
42
-    ├── job-name2.xml
43
-    └── job-name3.xml
44
-
45
-
46
- deploy.rb::
47
-
48
- set :application, "your-awesome-app"
49
- set :scm, :git
50
- set :repository, "https://github.com/your/repository.git"
51
-
52
- set :jenkins_host, 'http://localhost:8080'
53
- # set :jenkins_username, '' # default empty
54
- # set :jenkins_password, '' # default empty
55
- # set :jenkins_job_config_dir, 'config/jenkins/jobs'
56
-
57
- before 'deploy', 'jenkins:deploy_jobs'
58
-
59
- Want to disabling some jobs for specific environment?
60
- -----------------------------------------------------
61
-
62
- Since 0.0.5, you can disabling jobs using `disabled_jobs` option.
63
- Use this option with `multistage-extension <https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension>`_.
64
-
65
- Put the following line into `config/deploy/<env>.rb`::
66
-
67
- set :disabled_jobs, %w(job1 job2)
68
-
69
-
70
- Node Configuration
71
- ~~~~~~~~~~~~~~~~~~
72
-
73
- config directory structure(name your json file as a node name)::
74
-
75
- config
76
- ├── deploy.rb
77
- └── jenkins
78
-    └── nodes
79
-    ├── node1.json
80
-    ├── node2.json
81
-    └── node3.json
82
-
83
- sample node configuration::
84
-
85
- {
86
- "name" : "example",
87
- "type" : "hudson.slaves.DumbSlave$DescriptorImpl",
88
- "description" : "some description",
89
- "executors" : 2,
90
- "labels" : "linux, java, ruby",
91
- "slave_host" : "example.com",
92
- "slave_port" : 22,
93
- "slave_user" : "jenkins",
94
- "master_key" : "/var/lib/jenkins/.ssh/id_rsa",
95
- "slave_fs" : "/home/jenkins",
96
- "exclusive" : true,
97
- "java_path": "/opt/java/bin/java",
98
- "jvm_options": "-Xmx512M",
99
- "env_vars": {
100
- "key1": "val1",
101
- "key2": "val2"
102
- }
103
- }
104
-
105
- deploy.rb::
106
-
107
- set :application, "your-awesome-app"
108
- set :scm, :git
109
- set :repository, "https://github.com/your/repository.git"
110
-
111
- set :jenkins_host, 'http://localhost:8080'
112
- # set :jenkins_username, '' # default empty
113
- # set :jenkins_password, '' # default empty
114
- # set :jenkins_node_config_dir, 'config/jenkins/nodes'
115
-
116
- before 'deploy', 'jenkins:config_nodes'
117
-
118
- View Configuration
119
- ~~~~~~~~~~~~~~~~~~
120
-
121
- config directory structure(name your json file as a node name)::
122
-
123
- config
124
- ├── deploy.rb
125
- └── jenkins
126
-    └── views
127
-    ├── view1.xml
128
-    ├── view2.xml
129
-    └── view3.xml
130
-
131
- sample view configuration::
132
-
133
- <listView>
134
- <name>view1</name>
135
- <filterExecutors>false</filterExecutors>
136
- <filterQueue>false</filterQueue>
137
- <properties class="hudson.model.View$PropertyList"/>
138
- <jobNames class="tree-set">
139
- <comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../hudson.plugins.view.dashboard.Dashboard/jobNames/comparator"/>
140
- </jobNames>
141
- <jobFilters/>
142
- <columns>
143
- <hudson.views.StatusColumn/>
144
- <hudson.views.WeatherColumn/>
145
- <hudson.views.JobColumn/>
146
- <hudson.views.LastSuccessColumn/>
147
- <hudson.views.LastFailureColumn/>
148
- <hudson.views.LastDurationColumn/>
149
- <hudson.views.BuildButtonColumn/>
150
- </columns>
151
- <includeRegex>job.*</includeRegex>
152
- </listView>
153
-
154
- deploy.rb::
155
-
156
- set :application, "your-awesome-app"
157
- set :scm, :git
158
- set :repository, "https://github.com/your/repository.git"
159
-
160
- set :jenkins_host, 'http://localhost:8080'
161
- # set :jenkins_username, '' # default empty
162
- # set :jenkins_password, '' # default empty
163
- # set :jenkins_node_config_dir, 'config/jenkins/nodes'
164
-
165
- before 'deploy', 'jenkins:config_views'
166
-
167
-
168
- Don't know how to write config.xml for view?
169
- --------------------------------------------
170
-
171
- Create or configure the view you want to manage via usual operation through the Jenkins UI.
172
- Then, open the `JENKINS_HOME/config.xml` and copy the desired configuration from `<views>` section, and
173
- ommit `<owner class="hudson" reference="../../.."/>` line.
174
-
175
- Plugin Configuration(experimental)
176
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
177
-
178
- Note
179
- ----
180
-
181
- This feature is may change its API without any notice.
182
- Use at your own risk.
183
-
184
- deploy.rb::
185
-
186
- set :application, "your-awesome-app"
187
- set :scm, :git
188
- set :repository, "https://github.com/your/repository.git"
189
-
190
- set :jenkins_plugins, %w(cron_column envinject join)
191
- # you can specify version as follows:
192
- # set :jenkins_plugins, %w(cron_column@1.1.2 envinject join@1.0.0)
193
- set :jenkins_install_timeout, 60 * 5 # default: 5min
194
- set :jenkins_plugin_enable_update, false # dafault: false
195
- set :jenkins_plugin_enable_restart, false # default: false
196
-
197
- before 'deploy', 'jenkins:install_plugins'
198
-
199
- Release Notes
200
- =============
201
-
202
- 0.0.6
203
- * Support view management (`726ad3ef <https://github.com/cynipe/jenkins-capistrano/commit/726ad3ef817ba15a2d66503ce0dd4bc961ed92e2>`_)
204
- * Support plugin management(Experimental) (`4d9964c0 <https://github.com/cynipe/jenkins-capistrano/commit/4d9964c00ff95798915484ceb8b5c837b2aa03e8>`_)
205
-
206
- 0.0.5.2
207
- * Fix cgi library loading error
208
-
209
- Contributing
210
- ============
211
-
212
- 1. Fork it
213
- 2. Create your feature branch (`git checkout -b my-new-feature`)
214
- 3. Commit your changes (`git commit -am 'Added some feature'`)
215
- 4. Push to the branch (`git push origin my-new-feature`)
216
- 5. Create new Pull Request