jenkins-maestrodev 0.6.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/Changelog.md +58 -0
  3. data/Gemfile +3 -0
  4. data/README.md +162 -0
  5. data/Rakefile +110 -0
  6. data/bin/jenkins +9 -0
  7. data/cucumber.yml +8 -0
  8. data/features/build_details.feature +44 -0
  9. data/features/configure.feature +36 -0
  10. data/features/default_host.feature +26 -0
  11. data/features/development.feature +14 -0
  12. data/features/listing_jobs.feature +34 -0
  13. data/features/manage_jobs.feature +263 -0
  14. data/features/manage_slave_nodes.feature +83 -0
  15. data/features/step_definitions/common_steps.rb +192 -0
  16. data/features/step_definitions/fixture_project_steps.rb +8 -0
  17. data/features/step_definitions/jenkins_steps.rb +116 -0
  18. data/features/step_definitions/scm_steps.rb +12 -0
  19. data/features/support/common.rb +37 -0
  20. data/features/support/env.rb +19 -0
  21. data/features/support/hooks.rb +16 -0
  22. data/features/support/jenkins_helpers.rb +6 -0
  23. data/features/support/matchers.rb +10 -0
  24. data/fixtures/jenkins/envfile.hpi +0 -0
  25. data/fixtures/jenkins/git.hpi +0 -0
  26. data/fixtures/jenkins/github.hpi +0 -0
  27. data/fixtures/jenkins/greenballs.hpi +0 -0
  28. data/fixtures/jenkins/rake.hpi +0 -0
  29. data/fixtures/jenkins/ruby.hpi +0 -0
  30. data/fixtures/projects/erlang/rebar.config +1 -0
  31. data/fixtures/projects/non-bundler/Rakefile +4 -0
  32. data/fixtures/projects/rails-3/.gitignore +4 -0
  33. data/fixtures/projects/rails-3/Gemfile +30 -0
  34. data/fixtures/projects/rails-3/Gemfile.lock +74 -0
  35. data/fixtures/projects/rails-3/README +256 -0
  36. data/fixtures/projects/rails-3/Rakefile +7 -0
  37. data/fixtures/projects/rails-3/app/controllers/application_controller.rb +3 -0
  38. data/fixtures/projects/rails-3/app/helpers/application_helper.rb +2 -0
  39. data/fixtures/projects/rails-3/app/views/layouts/application.html.erb +14 -0
  40. data/fixtures/projects/rails-3/config.ru +4 -0
  41. data/fixtures/projects/rails-3/config/application.rb +42 -0
  42. data/fixtures/projects/rails-3/config/boot.rb +13 -0
  43. data/fixtures/projects/rails-3/config/database.yml +22 -0
  44. data/fixtures/projects/rails-3/config/environment.rb +5 -0
  45. data/fixtures/projects/rails-3/config/environments/development.rb +26 -0
  46. data/fixtures/projects/rails-3/config/environments/production.rb +49 -0
  47. data/fixtures/projects/rails-3/config/environments/test.rb +35 -0
  48. data/fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb +7 -0
  49. data/fixtures/projects/rails-3/config/initializers/inflections.rb +10 -0
  50. data/fixtures/projects/rails-3/config/initializers/mime_types.rb +5 -0
  51. data/fixtures/projects/rails-3/config/initializers/secret_token.rb +7 -0
  52. data/fixtures/projects/rails-3/config/initializers/session_store.rb +8 -0
  53. data/fixtures/projects/rails-3/config/locales/en.yml +5 -0
  54. data/fixtures/projects/rails-3/config/routes.rb +58 -0
  55. data/fixtures/projects/rails-3/db/seeds.rb +7 -0
  56. data/fixtures/projects/rails-3/doc/README_FOR_APP +2 -0
  57. data/fixtures/projects/rails-3/lib/tasks/.gitkeep +0 -0
  58. data/fixtures/projects/rails-3/public/404.html +26 -0
  59. data/fixtures/projects/rails-3/public/422.html +26 -0
  60. data/fixtures/projects/rails-3/public/500.html +26 -0
  61. data/fixtures/projects/rails-3/public/favicon.ico +0 -0
  62. data/fixtures/projects/rails-3/public/images/rails.png +0 -0
  63. data/fixtures/projects/rails-3/public/index.html +239 -0
  64. data/fixtures/projects/rails-3/public/javascripts/application.js +2 -0
  65. data/fixtures/projects/rails-3/public/javascripts/controls.js +965 -0
  66. data/fixtures/projects/rails-3/public/javascripts/dragdrop.js +974 -0
  67. data/fixtures/projects/rails-3/public/javascripts/effects.js +1123 -0
  68. data/fixtures/projects/rails-3/public/javascripts/prototype.js +6001 -0
  69. data/fixtures/projects/rails-3/public/javascripts/rails.js +175 -0
  70. data/fixtures/projects/rails-3/public/robots.txt +5 -0
  71. data/fixtures/projects/rails-3/public/stylesheets/.gitkeep +0 -0
  72. data/fixtures/projects/rails-3/script/rails +6 -0
  73. data/fixtures/projects/rails-3/test/performance/browsing_test.rb +9 -0
  74. data/fixtures/projects/rails-3/test/test_helper.rb +13 -0
  75. data/fixtures/projects/rails-3/vendor/plugins/.gitkeep +0 -0
  76. data/fixtures/projects/ruby/Gemfile +3 -0
  77. data/fixtures/projects/ruby/Gemfile.lock +10 -0
  78. data/fixtures/projects/ruby/Rakefile +4 -0
  79. data/jenkins.gemspec +34 -0
  80. data/lib/jenkins.rb +6 -0
  81. data/lib/jenkins/api.rb +312 -0
  82. data/lib/jenkins/cli.rb +361 -0
  83. data/lib/jenkins/cli/formatting.rb +53 -0
  84. data/lib/jenkins/config.rb +27 -0
  85. data/lib/jenkins/core_ext/hash.rb +9 -0
  86. data/lib/jenkins/core_ext/object/blank.rb +77 -0
  87. data/lib/jenkins/hudson-cli.jar +0 -0
  88. data/lib/jenkins/job_config_builder.rb +417 -0
  89. data/lib/jenkins/project_scm.rb +22 -0
  90. data/lib/jenkins/remote.rb +11 -0
  91. data/lib/jenkins/version.rb +3 -0
  92. data/spec/api_spec.rb +67 -0
  93. data/spec/fixtures/ec2_global.config.xml +103 -0
  94. data/spec/fixtures/erlang.single.config.xml +59 -0
  95. data/spec/fixtures/rails.multi.config.xml +82 -0
  96. data/spec/fixtures/rails.single.config.triggers.xml +84 -0
  97. data/spec/fixtures/rails.single.config.xml +80 -0
  98. data/spec/fixtures/ruby.multi-ruby-multi-labels.config.xml +84 -0
  99. data/spec/fixtures/ruby.multi.config.xml +77 -0
  100. data/spec/fixtures/ruby.single.config.xml +58 -0
  101. data/spec/fixtures/ruby.user-defined-axis.config.xml +69 -0
  102. data/spec/fixtures/therubyracer.config.xml +77 -0
  103. data/spec/hash_key_cleaner_spec.rb +25 -0
  104. data/spec/job_config_builder_spec.rb +233 -0
  105. data/spec/spec_helper.rb +15 -0
  106. metadata +291 -0
@@ -0,0 +1,22 @@
1
+ module Jenkins
2
+ class ProjectScm
3
+
4
+ def self.discover(scm)
5
+ ProjectScmGit.new(scm) if File.exist?(".git") && File.directory?(".git")
6
+ end
7
+
8
+ def self.supported
9
+ %w[git]
10
+ end
11
+ end
12
+
13
+ class ProjectScmGit < ProjectScm
14
+ def initialize(url = nil)
15
+ @url = url
16
+ end
17
+
18
+ def url
19
+ @url ||= `git config remote.origin.url`.strip
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,11 @@
1
+ module Jenkins
2
+ class Remote
3
+ def self.add_server(name, uri)
4
+ remotes[name] = uri
5
+ end
6
+
7
+ def self.remotes
8
+ @remotes ||= {}
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Jenkins
2
+ VERSION = "0.6.9"
3
+ end
@@ -0,0 +1,67 @@
1
+ require File.dirname(__FILE__) + "/spec_helper"
2
+
3
+ describe Jenkins::Api do
4
+ describe "#setup_base_url" do
5
+ it "should accept a hash with a host and port as an argument" do
6
+ uri = Jenkins::Api.setup_base_url :host => 'hash.example.com', :port => '123'
7
+ uri.host.should == 'hash.example.com'
8
+ uri.port.should == 123
9
+ uri.path.should == ''
10
+ end
11
+
12
+ it "should accept 'http://localhost:3010/somepath' as a string argument" do
13
+ uri = Jenkins::Api.setup_base_url 'http://string.example.com:1/somepath'
14
+ uri.host.should == 'string.example.com'
15
+ uri.port.should == 1
16
+ uri.path.should == '/somepath'
17
+ end
18
+
19
+ it "should accept 'http://localhost:3010/' as a :host argument" do
20
+ uri = Jenkins::Api.setup_base_url :host => 'http://string.example.com:2'
21
+ uri.host.should == 'string.example.com'
22
+ uri.port.should == 2
23
+ uri.path.should == ''
24
+ end
25
+
26
+ it "should accept basic auth parameters in the :host argument" do
27
+ uri = Jenkins::Api.setup_base_url :host => 'http://foo:bar@string.example.com:2'
28
+ uri.host.should == 'string.example.com'
29
+ uri.port.should == 2
30
+ uri.path.should == ''
31
+ auth = Jenkins::Api.default_options[:basic_auth]
32
+ auth[:username].should == 'foo'
33
+ auth[:password].should == 'bar'
34
+ end
35
+
36
+ context "with environment variables" do
37
+ after :each do
38
+ ENV.delete 'JENKINS_HOST'
39
+ ENV.delete 'JENKINS_PORT'
40
+ end
41
+
42
+ it "should accept the environment variables JENKINS_HOST and JENKINS_PORT" do
43
+ ENV['JENKINS_HOST'] = 'environment.example.com'
44
+ ENV['JENKINS_PORT'] = '432'
45
+ uri = Jenkins::Api.setup_base_url
46
+ uri.host.should == 'environment.example.com'
47
+ uri.port.should == 432
48
+ end
49
+
50
+ it "should not let environment variables override a hash" do
51
+ ENV['JENKINS_HOST'] = 'wrong.example.com'
52
+ ENV['JENKINS_PORT'] = '123'
53
+ uri = Jenkins::Api.setup_base_url :host => 'right.example.com', :port => '111'
54
+ uri.host.should == 'right.example.com'
55
+ uri.port.should == 111
56
+ end
57
+
58
+ it "should not let environment variables override a string URL" do
59
+ ENV['JENKINS_HOST'] = 'wrong.example.com'
60
+ ENV['JENKINS_PORT'] = '123'
61
+ uri = Jenkins::Api.setup_base_url 'http://right.example.com:111/'
62
+ uri.host.should == 'right.example.com'
63
+ uri.port.should == 111
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,103 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <hudson>
3
+ <version>1.359</version>
4
+ <numExecutors>2</numExecutors>
5
+ <mode>NORMAL</mode>
6
+ <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
7
+ <securityRealm class="hudson.security.SecurityRealm$None"/>
8
+ <jdks/>
9
+ <clouds>
10
+ <hudson.plugins.ec2.EC2Cloud>
11
+ <name>ec2-US_EAST_1</name>
12
+ <accessId>0MVEQ5Q0BNYEGJX898G2</accessId>
13
+ <secretKey>[REMOVED]</secretKey>
14
+ <privateKey>
15
+ <privateKey>[REMOVED]</privateKey>
16
+ </privateKey>
17
+ <instanceCap>2147483647</instanceCap>
18
+ <templates>
19
+ <hudson.plugins.ec2.SlaveTemplate>
20
+ <ami>ami-79d43d10</ami>
21
+ <description>Ubuntu Lucid 10.04 64bit Server</description>
22
+ <remoteFS>/mnt/hudson</remoteFS>
23
+ <type>LARGE</type>
24
+ <labels>Ubuntu-Lucid-10.04-server-amd64 GCC_44</labels>
25
+ <initScript></initScript>
26
+ <userData></userData>
27
+ <numExecutors>4</numExecutors>
28
+ <remoteAdmin>ubuntu</remoteAdmin>
29
+ <rootCommandPrefix>sudo</rootCommandPrefix>
30
+ </hudson.plugins.ec2.SlaveTemplate>
31
+ <hudson.plugins.ec2.SlaveTemplate>
32
+ <ami>ami-e7d53c8e</ami>
33
+ <description>Ubuntu Karmic 9.10 64bit Server</description>
34
+ <remoteFS>/mnt/hudson</remoteFS>
35
+ <type>LARGE</type>
36
+ <labels>Ubuntu-Karmic-9.10-server-amd64 GCC_43</labels>
37
+ <initScript></initScript>
38
+ <userData></userData>
39
+ <numExecutors>4</numExecutors>
40
+ <remoteAdmin>ubuntu</remoteAdmin>
41
+ <rootCommandPrefix>sudo</rootCommandPrefix>
42
+ </hudson.plugins.ec2.SlaveTemplate>
43
+ </templates>
44
+ <region>US_EAST_1</region>
45
+ </hudson.plugins.ec2.EC2Cloud>
46
+ </clouds>
47
+ <slaves>
48
+ <slave>
49
+ <name>Legolas</name>
50
+ <description>Legolas Mac Pro</description>
51
+ <remoteFS>/Users/hudon/work</remoteFS>
52
+ <numExecutors>2</numExecutors>
53
+ <mode>NORMAL</mode>
54
+ <retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
55
+ <launcher class="hudson.plugins.sshslaves.SSHLauncher">
56
+ <host>legolas.thefrontside.net</host>
57
+ <port>22</port>
58
+ <username>cowboyd</username>
59
+ <password>[REMOVED]</password>
60
+ <privatekey></privatekey>
61
+ <jvmOptions></jvmOptions>
62
+ </launcher>
63
+ <label>OSX-Snow-Leopard-10.6.3</label>
64
+ <nodeProperties/>
65
+ </slave>
66
+ <slave>
67
+ <name>Gimli</name>
68
+ <description>The Mac Mini Sitting on the bookshelf at the frontside office</description>
69
+ <remoteFS>/Users/hudson/work</remoteFS>
70
+ <numExecutors>2</numExecutors>
71
+ <mode>NORMAL</mode>
72
+ <retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
73
+ <launcher class="hudson.plugins.sshslaves.SSHLauncher">
74
+ <host>gimli.thefrontside.net</host>
75
+ <port>22</port>
76
+ <username>hudson</username>
77
+ <password>[REMOVED]</password>
78
+ <privatekey></privatekey>
79
+ <jvmOptions></jvmOptions>
80
+ </launcher>
81
+ <label>OSX-Leopard-10.5</label>
82
+ <nodeProperties/>
83
+ </slave>
84
+ </slaves>
85
+ <quietPeriod>5</quietPeriod>
86
+ <scmCheckoutRetryCount>0</scmCheckoutRetryCount>
87
+ <views>
88
+ <hudson.model.AllView>
89
+ <owner class="hudson" reference="../../.."/>
90
+ <name>All</name>
91
+ <filterExecutors>false</filterExecutors>
92
+ <filterQueue>false</filterQueue>
93
+ </hudson.model.AllView>
94
+ </views>
95
+ <primaryView>All</primaryView>
96
+ <slaveAgentPort>0</slaveAgentPort>
97
+ <label></label>
98
+ <nodeProperties/>
99
+ <globalNodeProperties/>
100
+ <disabledAdministrativeMonitors>
101
+ <string>OldData</string>
102
+ </disabledAdministrativeMonitors>
103
+ </hudson>
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project>
3
+ <actions/>
4
+ <description/>
5
+ <keepDependencies>false</keepDependencies>
6
+ <properties/>
7
+ <scm class="hudson.plugins.git.GitSCM">
8
+ <configVersion>1</configVersion>
9
+ <remoteRepositories>
10
+ <org.spearce.jgit.transport.RemoteConfig>
11
+ <string>origin</string>
12
+ <int>5</int>
13
+ <string>fetch</string>
14
+ <string>+refs/heads/*:refs/remotes/origin/*</string>
15
+ <string>receivepack</string>
16
+ <string>git-upload-pack</string>
17
+ <string>uploadpack</string>
18
+ <string>git-upload-pack</string>
19
+ <string>url</string>
20
+ <string>git://codebasehq.com/mocra/misc/mocra-web.git</string>
21
+ <string>tagopt</string>
22
+ <string/>
23
+ </org.spearce.jgit.transport.RemoteConfig>
24
+ </remoteRepositories>
25
+ <branches>
26
+ <hudson.plugins.git.BranchSpec>
27
+ <name>master</name>
28
+ </hudson.plugins.git.BranchSpec>
29
+ </branches>
30
+ <localBranch/>
31
+ <mergeOptions/>
32
+ <recursiveSubmodules>false</recursiveSubmodules>
33
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
34
+ <authorOrCommitter>false</authorOrCommitter>
35
+ <clean>false</clean>
36
+ <wipeOutWorkspace>false</wipeOutWorkspace>
37
+ <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
38
+ <gitTool>Default</gitTool>
39
+ <submoduleCfg class="list"/>
40
+ <relativeTargetDir/>
41
+ <excludedRegions/>
42
+ <excludedUsers/>
43
+ </scm>
44
+ <canRoam>true</canRoam>
45
+ <disabled>false</disabled>
46
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
47
+ <triggers class="vector"/>
48
+ <concurrentBuild>false</concurrentBuild>
49
+ <builders>
50
+ <hudson.tasks.Shell>
51
+ <command>rebar compile</command>
52
+ </hudson.tasks.Shell>
53
+ <hudson.tasks.Shell>
54
+ <command>rebar ct</command>
55
+ </hudson.tasks.Shell>
56
+ </builders>
57
+ <publishers/>
58
+ <buildWrappers/>
59
+ </project>
@@ -0,0 +1,82 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <matrix-project>
3
+ <actions/>
4
+ <description/>
5
+ <keepDependencies>false</keepDependencies>
6
+ <properties/>
7
+ <scm class="hudson.plugins.git.GitSCM">
8
+ <configVersion>1</configVersion>
9
+ <remoteRepositories>
10
+ <org.spearce.jgit.transport.RemoteConfig>
11
+ <string>origin</string>
12
+ <int>5</int>
13
+ <string>fetch</string>
14
+ <string>+refs/heads/*:refs/remotes/origin/*</string>
15
+ <string>receivepack</string>
16
+ <string>git-upload-pack</string>
17
+ <string>uploadpack</string>
18
+ <string>git-upload-pack</string>
19
+ <string>url</string>
20
+ <string>git@codebasehq.com:mocra/dash/web-app.git</string>
21
+ <string>tagopt</string>
22
+ <string/>
23
+ </org.spearce.jgit.transport.RemoteConfig>
24
+ </remoteRepositories>
25
+ <branches>
26
+ <hudson.plugins.git.BranchSpec>
27
+ <name>master</name>
28
+ </hudson.plugins.git.BranchSpec>
29
+ </branches>
30
+ <mergeOptions/>
31
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
32
+ <clean>false</clean>
33
+ <choosingStrategy>Default</choosingStrategy>
34
+ <submoduleCfg class="list"/>
35
+ </scm>
36
+ <canRoam>true</canRoam>
37
+ <disabled>false</disabled>
38
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
39
+ <concurrentBuild>false</concurrentBuild>
40
+ <axes>
41
+ </axes>
42
+ <builders>
43
+ <hudson.tasks.Shell>
44
+ <command>echo &quot;Running steps...&quot;</command>
45
+ </hudson.tasks.Shell>
46
+ <hudson.plugins.ruby.Ruby>
47
+ <command>unless File.exist?(&quot;config/database.yml&quot;)
48
+ require &apos;fileutils&apos;
49
+ example = Dir[&quot;config/database*&quot;].first
50
+ puts &quot;Using #{example} for config/database.yml&quot;
51
+ FileUtils.cp example, &quot;config/database.yml&quot;
52
+ end</command>
53
+ </hudson.plugins.ruby.Ruby>
54
+ <hudson.plugins.rake.Rake>
55
+ <rakeInstallation>(Default)</rakeInstallation>
56
+ <rakeFile/>
57
+ <rakeLibDir/>
58
+ <rakeWorkingDir/>
59
+ <tasks>db:schema:load</tasks>
60
+ <silent>false</silent>
61
+ </hudson.plugins.rake.Rake>
62
+ <hudson.plugins.rake.Rake>
63
+ <rakeInstallation>(Default)</rakeInstallation>
64
+ <rakeFile/>
65
+ <rakeLibDir/>
66
+ <rakeWorkingDir/>
67
+ <tasks>features</tasks>
68
+ <silent>false</silent>
69
+ </hudson.plugins.rake.Rake>
70
+ <hudson.plugins.rake.Rake>
71
+ <rakeInstallation>(Default)</rakeInstallation>
72
+ <rakeFile/>
73
+ <rakeLibDir/>
74
+ <rakeWorkingDir/>
75
+ <tasks>spec</tasks>
76
+ <silent>false</silent>
77
+ </hudson.plugins.rake.Rake>
78
+ </builders>
79
+ <publishers/>
80
+ <buildWrappers/>
81
+ <runSequentially>false</runSequentially>
82
+ </matrix-project>
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project>
3
+ <actions/>
4
+ <description/>
5
+ <keepDependencies>false</keepDependencies>
6
+ <properties/>
7
+ <scm class="hudson.plugins.git.GitSCM">
8
+ <configVersion>1</configVersion>
9
+ <remoteRepositories>
10
+ <org.spearce.jgit.transport.RemoteConfig>
11
+ <string>origin</string>
12
+ <int>5</int>
13
+ <string>fetch</string>
14
+ <string>+refs/heads/*:refs/remotes/origin/*</string>
15
+ <string>receivepack</string>
16
+ <string>git-upload-pack</string>
17
+ <string>uploadpack</string>
18
+ <string>git-upload-pack</string>
19
+ <string>url</string>
20
+ <string>git@codebasehq.com:mocra/misc/mocra-web.git</string>
21
+ <string>tagopt</string>
22
+ <string/>
23
+ </org.spearce.jgit.transport.RemoteConfig>
24
+ </remoteRepositories>
25
+ <branches>
26
+ <hudson.plugins.git.BranchSpec>
27
+ <name>master</name>
28
+ </hudson.plugins.git.BranchSpec>
29
+ </branches>
30
+ <mergeOptions/>
31
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
32
+ <clean>false</clean>
33
+ <choosingStrategy>Default</choosingStrategy>
34
+ <submoduleCfg class="list"/>
35
+ </scm>
36
+ <canRoam>true</canRoam>
37
+ <disabled>false</disabled>
38
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
39
+ <triggers class="vector">
40
+ <hudson.triggers.SCMTrigger>
41
+ <spec># every minute
42
+ * * * * *</spec>
43
+ </hudson.triggers.SCMTrigger>
44
+ </triggers>
45
+ <concurrentBuild>false</concurrentBuild>
46
+ <builders>
47
+ <hudson.plugins.ruby.Ruby>
48
+ <command>
49
+ unless File.exist?(&quot;config/database.yml&quot;)
50
+ require &apos;fileutils&apos;
51
+ example = Dir[&quot;config/database*&quot;].first
52
+ puts &quot;Using #{example} for config/database.yml&quot;
53
+ FileUtils.cp example, &quot;config/database.yml&quot;
54
+ end
55
+ </command>
56
+ </hudson.plugins.ruby.Ruby>
57
+ <hudson.plugins.rake.Rake>
58
+ <rakeInstallation>(Default)</rakeInstallation>
59
+ <rakeFile/>
60
+ <rakeLibDir/>
61
+ <rakeWorkingDir/>
62
+ <tasks>db:schema:load</tasks>
63
+ <silent>false</silent>
64
+ </hudson.plugins.rake.Rake>
65
+ <hudson.plugins.rake.Rake>
66
+ <rakeInstallation>(Default)</rakeInstallation>
67
+ <rakeFile/>
68
+ <rakeLibDir/>
69
+ <rakeWorkingDir/>
70
+ <tasks>features</tasks>
71
+ <silent>false</silent>
72
+ </hudson.plugins.rake.Rake>
73
+ <hudson.plugins.rake.Rake>
74
+ <rakeInstallation>(Default)</rakeInstallation>
75
+ <rakeFile/>
76
+ <rakeLibDir/>
77
+ <rakeWorkingDir/>
78
+ <tasks>spec</tasks>
79
+ <silent>false</silent>
80
+ </hudson.plugins.rake.Rake>
81
+ </builders>
82
+ <publishers/>
83
+ <buildWrappers/>
84
+ </project>
@@ -0,0 +1,80 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project>
3
+ <actions/>
4
+ <description/>
5
+ <keepDependencies>false</keepDependencies>
6
+ <properties/>
7
+ <scm class="hudson.plugins.git.GitSCM">
8
+ <configVersion>1</configVersion>
9
+ <remoteRepositories>
10
+ <org.spearce.jgit.transport.RemoteConfig>
11
+ <string>origin</string>
12
+ <int>5</int>
13
+ <string>fetch</string>
14
+ <string>+refs/heads/*:refs/remotes/origin/*</string>
15
+ <string>receivepack</string>
16
+ <string>git-upload-pack</string>
17
+ <string>uploadpack</string>
18
+ <string>git-upload-pack</string>
19
+ <string>url</string>
20
+ <string>git://codebasehq.com/mocra/misc/mocra-web.git</string>
21
+ <string>tagopt</string>
22
+ <string/>
23
+ </org.spearce.jgit.transport.RemoteConfig>
24
+ </remoteRepositories>
25
+ <branches>
26
+ <hudson.plugins.git.BranchSpec>
27
+ <name>master</name>
28
+ </hudson.plugins.git.BranchSpec>
29
+ </branches>
30
+ <localBranch/>
31
+ <mergeOptions/>
32
+ <recursiveSubmodules>false</recursiveSubmodules>
33
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
34
+ <authorOrCommitter>false</authorOrCommitter>
35
+ <clean>false</clean>
36
+ <wipeOutWorkspace>false</wipeOutWorkspace>
37
+ <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
38
+ <gitTool>Default</gitTool>
39
+ <submoduleCfg class="list"/>
40
+ <relativeTargetDir/>
41
+ <excludedRegions/>
42
+ <excludedUsers/>
43
+ </scm>
44
+ <canRoam>true</canRoam>
45
+ <disabled>false</disabled>
46
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
47
+ <triggers class="vector"/>
48
+ <concurrentBuild>false</concurrentBuild>
49
+ <builders>
50
+ <hudson.tasks.Shell>
51
+ <command>bundle install</command>
52
+ </hudson.tasks.Shell>
53
+ <hudson.plugins.ruby.Ruby>
54
+ <command>
55
+ unless File.exist?(&quot;config/database.yml&quot;)
56
+ require &apos;fileutils&apos;
57
+ example = Dir[&quot;config/database*&quot;].first
58
+ puts &quot;Using #{example} for config/database.yml&quot;
59
+ FileUtils.cp example, &quot;config/database.yml&quot;
60
+ end
61
+ </command>
62
+ </hudson.plugins.ruby.Ruby>
63
+ <hudson.tasks.Shell>
64
+ <command>bundle exec rake db:create:all</command>
65
+ </hudson.tasks.Shell>
66
+ <hudson.tasks.Shell>
67
+ <command>if [ -f db/schema.rb ]; then
68
+ bundle exec rake db:schema:load
69
+ else
70
+ bundle exec rake db:migrate
71
+ fi
72
+ </command>
73
+ </hudson.tasks.Shell>
74
+ <hudson.tasks.Shell>
75
+ <command>bundle exec rake</command>
76
+ </hudson.tasks.Shell>
77
+ </builders>
78
+ <publishers/>
79
+ <buildWrappers/>
80
+ </project>