engineyard-hudson 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- engineyard-hudson (0.2.0)
4
+ engineyard-hudson (0.2.2)
5
5
  engineyard (~> 1.3.3)
6
6
  thor (~> 0.14.3)
7
7
 
data/README.md CHANGED
@@ -4,7 +4,13 @@ Run your continuous integration (CI) tests against your Engine Yard AppCloud env
4
4
 
5
5
  You're developing on OS X or Windows, deploying to Engine Yard AppCloud (Gentoo/Linux), and you're running your CI on your local machine or a spare Ubuntu machine in the corner of the office, or ... you're not running CI at all?
6
6
 
7
- It's a nightmare. It was for me. [Hudson CI](http://hudson-ci.org/), the [hudson](http://github.com/cowboyd/hudson.rb) CLI project, and **engineyard-hudson** now make CI easier to do than not to. A few quick commands and your Rails applications' tests are automatically running, no additional setup, and its the same environment you are deploying your Rails applications (Engine Yard AppCloud). Sweet.
7
+ It's a nightmare. It was for me.
8
+
9
+ But now, [Hudson CI](http://hudson-ci.org/), the [hudson](http://github.com/cowboyd/hudson.rb) CLI project, and **engineyard-hudson** now make CI easier to do than not to for Engine Yard AppCloud users.
10
+
11
+ And here's some logos:
12
+
13
+ <img src="http://img.skitch.com/20101103-gcq2turgih14rjdqatt1kjkd6u.png">
8
14
 
9
15
  ## Installation
10
16
 
@@ -27,54 +33,69 @@ In the very first release of `engineyard-hudson`:
27
33
  * There is no support for authentication/authorization of Hudson CI. It _will_ use the deploy keys already installed on your AppCloud instance, as described in engineyard-serverside [#set_up_git_ssh](http://github.com/engineyard/engineyard-serverside/blob/master/lib/engineyard-serverside/strategies/git.rb#L106-134)
28
34
  * No mail server configured for Hudson CI build failure notifications.
29
35
 
30
- That is, its really only useful - at this very "alpha" instant in time - to Open Source Rails projects. But that's just me being brutally honest.
31
-
32
36
  ## Hosting Hudson CI
33
37
 
34
38
  Hosting Hudson CI on Engine Yard AppCloud is optional; yet delightfully simple. Hudson CI can be hosted anywhere.
35
39
 
36
40
  ### Hosting on Engine Yard AppCloud
37
41
 
42
+ Using Engine Yard AppCloud "Quick Start" wizard, create an application with Git Repo `git://github.com/drnic/ci_demo_app.git` (any arbitrary rails/rack application), and add your own SSH keys. Name the environment `hudson` (or similar) and boot it as a Single instance (or Custom cluster with a single instance).
43
+
38
44
  Just a few steps and you will have your own Hudson CI:
39
45
 
40
46
  $ mkdir hudson_server
41
47
  $ cd hudson_server
42
48
  $ ey-hudson server . --plugins 'googleanalytics,chucknorris'
43
-
44
- Finally:
45
- * edit cookbooks/hudson_master/attributes/default.rb as necessary.
46
- * run: ey recipes upload # use --environment(-e) & --account(-c)
47
- * run: ey recipes apply # to select environment
48
- * Boot your environment if not already booted.
49
+ $ ey recipes upload -e hudson
50
+ $ ey recipes apply -e hudson
51
+
52
+ *For the Hudson slaves' configuration, you'll need:*
53
+
54
+ The `hudson` instance public key:
55
+
56
+ $ ey ssh -e hudson
57
+ $ cat /home/deploy/.ssh/id_rsa.pub
49
58
 
50
- Do those steps and you're done! Now, you either visit your Hudson CI site or use `hudson list` to see the status of your projects being tested.
59
+ The `hudson` instance URI:
51
60
 
52
- Note: the Hudson CI environment in Engine Yard AppCloud must be a single instance "solo".
61
+ $ sudo ruby -rubygems -e "require 'json'; puts JSON.parse(File.read('/etc/chef/dna.json'))['engineyard']['environment']['instances'].first['public_hostname']"
62
+
63
+
64
+ Do those steps, copy down the configuration and you're done! Now, you either visit your Hudson CI site or use `hudson list` to see the status of your projects being tested.
53
65
 
54
66
  ### Hosting elsewhere
55
67
 
56
68
  You need the following information about your Hudson CI:
57
69
 
58
- * Hudson CI public host (& port)
59
- * Hudson CI's user's public key (probably at /home/hudson/.ssh/id_rsa.pub)
60
- * Hudson CI's user's private key path (probably /home/hudson/.ssh/id_rsa)
70
+ * Hudson CI public host & port
71
+ * Hudson CI's user's public key (probably at `/home/deploy/.ssh/id_rsa.pub`)
72
+ * Hudson CI's user's private key path (probably `/home/deploy/.ssh/id_rsa`)
61
73
 
62
74
  ## Running your tests in Hudson against Engine Yard AppCloud
63
75
 
64
76
  This is the exciting part - ensuring that your CI tests are being run in the same environment as your production applications. In this case, on Engine Yard AppCloud.
65
77
 
66
- Just a few steps and you will have your applications' tests running.
78
+ It is assumed that you already have a production application environment (might have multiple applications in it):
79
+
80
+ <img src="http://img.skitch.com/20101103-k2u4dpnn6ukkwq1dafbtiuwi2s.png">
81
+
82
+ In the Engine Yard AppCloud UI, create another environment that matches the production environment exactly (same Ruby, same set of applications, same Unix libraries).
83
+
84
+ <img src="http://img.skitch.com/20101103-h58t3kfrpc2qm4eb6t4664m13.png">
85
+
86
+ Now, in just a few steps and you will have your applications' tests running in an environment that matches your production environment:
67
87
 
68
88
  $ cd /my/project
69
89
  $ ey-hudson install .
70
90
 
71
- Finally:
72
- * edit cookbooks/hudson_slave/attributes/default.rb as necessary.
73
- * run: ey recipes upload # use --environment(-e) & --account(-c)
74
- * run: ey recipes apply # to select environment
75
- * Boot your environment if not already booted.
91
+ Now edit `cookbooks/hudson_slave/attributes/default.rb` to set up the Hudson CI instance details gathered above.
92
+
93
+ $ ey recipes upload -e ci_demo_app_ci
94
+ $ ey recipes apply -e ci_demo_app_ci
95
+
96
+ Boot your `ci_demo_app_ci` environment, visit your Hudson CI and WOW! jobs have been created, they are already running, and they are doing it upon your `ci_demo_app_ci` environment!
76
97
 
77
- Do those steps and you're done! Now, you either visit your Hudson CI site or use `hudson list` to see the status of your projects being tested.
98
+ At any time from the command line you can use `hudson list` to see the status of your jobs
78
99
 
79
100
  ### Conventions/Requirements
80
101
 
@@ -2,12 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "engineyard-hudson"
5
- s.version = '0.2.1'
5
+ s.version = '0.2.2'
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.authors = ["Dr Nic Williams"]
8
8
  s.email = ["drnicwilliams@gmail.com"]
9
9
  s.homepage = "http://github.com/engineyard/engineyard-hudson"
10
- s.summary = %q{Easier to do CI than not to. Use Hudson CI on Engine Yard AppCloud.}
10
+ s.summary = %q{Easier to do CI than not to. Use Hudson CI with Engine Yard AppCloud.}
11
11
  s.description = %q{Run your continuous integration (CI) tests against your Engine Yard AppCloud environments - the exact same configuration you are using in production!}
12
12
 
13
13
  s.rubyforge_project = "engineyard-hudson"
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_dependency("thor", ["~> 0.14.3"])
21
21
  s.add_dependency("engineyard", ["~> 1.3.3"])
22
- # s.add_dependency("hudson", ["~> 0.3.0.beta"])
23
22
 
24
23
  s.add_development_dependency("rake", ["~> 0.8.7"])
25
24
  s.add_development_dependency("cucumber", ["~> 0.9.3"])
@@ -1,5 +1,5 @@
1
1
  module Engineyard
2
2
  module Hudson
3
- VERSION = '0.2.1'
3
+ VERSION = '0.2.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard-hudson
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
9
+ - 2
10
+ version: 0.2.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dr Nic Williams
@@ -213,7 +213,7 @@ rubyforge_project: engineyard-hudson
213
213
  rubygems_version: 1.3.7
214
214
  signing_key:
215
215
  specification_version: 3
216
- summary: Easier to do CI than not to. Use Hudson CI on Engine Yard AppCloud.
216
+ summary: Easier to do CI than not to. Use Hudson CI with Engine Yard AppCloud.
217
217
  test_files:
218
218
  - features/install.feature
219
219
  - features/server.feature