engineyard-hudson 0.2.1 → 0.2.2

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.
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