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