Skip to content

Commit

Permalink
Experimental Librarian support branch for Pennyworth
Browse files Browse the repository at this point in the history
  • Loading branch information
AJ Christensen committed Jan 17, 2012
0 parents commit 91b203a
Show file tree
Hide file tree
Showing 10 changed files with 228 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
readme.html
iso
*.box
.vagrant
.bundle
*.swp
*.swo
.\#*
cookbooks
tmp
23 changes: 23 additions & 0 deletions Cheffile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env ruby
#^syntax detection

site "http://community.opscode.com/api/v1"

[ "runit",
"leiningen",
"build-essential",
"apache2",
"postfix",
"java",
"apt",
"ant" ].each do |cb|
cookbook cb
end

[ "pennyworth",
"reprepro",
"gpg" ].each do |git_cb|
cookbook( git_cb,
:git => "https://github.com/heavywater/chef-#{git_cb}",
:ref => "develop" )
end
66 changes: 66 additions & 0 deletions Cheffile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
SITE
remote: http://community.opscode.com/api/v1
specs:
ant (0.10.1)
java (>= 0)
jpackage (>= 0)
apache2 (1.0.8)
apt (1.2.2)
build-essential (1.0.0)
java (1.1.0)
apt (>= 0)
jenkins (0.6.1)
java (>= 0.0.0)
runit (>= 0.0.0)
jpackage (0.10.0)
java (>= 0)
leiningen (0.2.0)
java (>= 0)
postfix (0.8.4)
runit (0.14.2)

GIT
remote: https://github.com/heavywater/chef-gpg
ref: develop
sha: b5a9afaf5dd7bd98dbaef6b5a5dc5e019e167e01
specs:
gpg (0.0.1)

GIT
remote: https://github.com/heavywater/chef-pennyworth
ref: develop
sha: a79827615265a6de81fd5083c506ecd0f11782d7
specs:
pennyworth (0.2.2)
ant (>= 0.0.0)
build-essential (>= 0.0.0)
java (>= 0.0.0)
jenkins (>= 0.0.0)
leiningen (>= 0.0.0)
postfix (>= 0.0.0)
reprepro (>= 0.0.0)

GIT
remote: https://github.com/heavywater/chef-reprepro
ref: develop
sha: bc98fb624a95d09f18a2224b46c348642b646586
specs:
reprepro (0.2.2)
apache2 (>= 0.0.0)
apt (>= 0.0.0)
build-essential (>= 0.0.0)
gpg (>= 0.0.0)

DEPENDENCIES
ant (>= 0)
apache2 (>= 0)
apt (>= 0)
build-essential (>= 0)
gpg (>= 0)
java (>= 0)
leiningen (>= 0)
pennyworth (>= 0)
postfix (>= 0)
reprepro (>= 0)
runit (>= 0)

18 changes: 18 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Vagrant::Config.run do |config|
config.vm.define :pennyworth do |pennyworth|
pennyworth.vm.customize do |vm|
vm.memory_size = 4096
# vm.cpus = 8
end
pennyworth.vm.box = "natty64"
pennyworth.vm.box_url = "https://s3.amazonaws.com/hw-vagrant/natty64.box"
pennyworth.vm.forward_port "web", 80, 8000, :auto => true
pennyworth.vm.forward_port "jenkins", 8080, 8080, :auto => true
pennyworth.vm.provision :chef_solo do |chef|
chef.data_bags_path = "data_bags"
chef.cookbooks_path = "cookbooks"
chef.roles_path = "roles"
chef.add_role "pennyworth"
end
end
end
3 changes: 3 additions & 0 deletions data_bags/package/ruby.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{ "id" : "ruby",
"version" : "0.0.0"
}
18 changes: 18 additions & 0 deletions data_bags/pennyworth/install-dependency-packages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{ "id" : "install-dependency-packages",
"project_type" : "package",
"test_commands" : [
"true"
],
"build_commands" : [
"sudo /usr/bin/apt-get update",
"sudo /usr/bin/apt-get install ruby1.9.3-full -y"
],
"package_commands" : [
"true"
],
"child_projects" : [
"rubygem-bundler"
]
}


Empty file added data_bags/pennyworth/readme.org
Empty file.
33 changes: 33 additions & 0 deletions data_bags/pennyworth/ruby.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{ "id" : "ruby",
"version" : {
"major" : "1.9",
"minor" : "3"
},
"project_type" : "package_from_git",
"git_branch" : "ruby_1_9_3",
"git_url" : "git://github.com/ruby/ruby.git",
"test_commands" : [
"autoconf",
"./configure --prefix=/usr/local --disable-install-doc",
"make test"
],
"build_commands" : [
"make install DESTDIR=\$DESTDIR"
],
"package_commands": [
// Setup and build the deb package for Ruby, including a few paths
// and adding the ldconfig dpkg-trigger.
"mkdir -p fpm",
"cd fpm; fpm -s dir -t deb -n ruby1.9.3-full -v \$VERSION -C \$DESTDIR -p ruby1.9.3-full-VERSION_ARCH.deb --post-install /var/lib/jenkins/ldconfig usr/local/bin usr/local/include /usr/local/lib usr/local/share",
// Include the package into reprepro
"sudo /usr/bin/reprepro -Vb /srv/apt includedeb \$LSB_CODENAME \$DESTDIR/ruby1.9.3-full-\$VERSION_*.deb",
// Update the databag, if we're running on chef-client
"if [ -f /etc/chef/client.rb ]; then sudo /usr/local/bin/update_version.rb \$JOB_NAME \$VERSION; fi"
],
"child_projects" : [
"install-dependency-packages"
],
"remote_poll": true,
"clean" : true,
"wipeoutworkspace" : true
}
10 changes: 10 additions & 0 deletions data_bags/pennyworth/rubygem-bundler.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{ "id" : "rubygem-bundler",
"project_type" : "package",
"build_commands" : [
"fpm -s gem -t deb bundler"
],
"package_commands" : [
//"sudo /usr/bin/reprepro -Vb /srv/apt remove \$LSB_CODENAME rubygem-bundler",
"sudo /usr/bin/reprepro -Vb /srv/apt includedeb \$LSB_CODENAME $\WORKSPACE/rubygem-bundler*.deb"
]
}
47 changes: 47 additions & 0 deletions roles/pennyworth.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name "pennyworth"
description "Components required for the pennyworth continuous deployment pipeline"
run_list( "recipe[reprepro]",
"recipe[java]",
"recipe[postfix]",
"recipe[pennyworth::ssh_key]",
"recipe[jenkins]",
"recipe[pennyworth::update_version]",
"recipe[pennyworth::dependencies]",
"recipe[pennyworth]" )

default_attributes( "java" => { "install_flavor" => "openjdk" },
"jenkins" => {
"http_proxy" => {
"variant" => "apache2"
},
"server" => {
"host" => "127.0.0.1",
"plugins" => [
'setenv',
'git',
'python',
'ruby',
'rake',
'greenballs',
'xunit',
'campfire'
]
} },
"postfix" => {
"mail_type" => "master"
},
"pennyworth" => {
"package_dependencies" => [
"git",
"libtool",
"uuid-dev"
],
"ruby_gem_dependencies" => [
"fpm",
"bundler",
"rake",
"rdoc",
"rspec",
"cucumber"
],
} )

0 comments on commit 91b203a

Please sign in to comment.