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 +1 -1
- data/README.md +42 -21
- data/engineyard-hudson.gemspec +2 -3
- data/lib/engineyard-hudson/version.rb +1 -1
- metadata +4 -4
data/Gemfile.lock
CHANGED
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.
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
-
|
59
|
+
The `hudson` instance URI:
|
51
60
|
|
52
|
-
|
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
|
59
|
-
* Hudson CI's user's public key (probably at
|
60
|
-
* Hudson CI's user's private key path (probably
|
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
|
-
|
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
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
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
|
-
|
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
|
|
data/engineyard-hudson.gemspec
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "engineyard-hudson"
|
5
|
-
s.version = '0.2.
|
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
|
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"])
|
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
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
|
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
|