lobot 2.0.0pre → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. data/.gitignore +7 -10
  2. data/.gitmodules +1 -1
  3. data/.pairs +15 -0
  4. data/.rvmrc +1 -1
  5. data/.travis.yml +5 -0
  6. data/Gemfile +2 -2
  7. data/LICENSE.txt +1 -1
  8. data/README.md +67 -29
  9. data/Rakefile +11 -6
  10. data/Vagrantfile +8 -5
  11. data/bin/lobot +2 -4
  12. data/chef/cookbooks/pivotal_ci/attributes/jenkins.rb +1 -0
  13. data/chef/cookbooks/pivotal_ci/files/default/tests/minitest/default_test.rb +40 -2
  14. data/chef/cookbooks/pivotal_ci/recipes/id_rsa.rb +5 -0
  15. data/chef/cookbooks/pivotal_ci/recipes/jenkins_config.rb +5 -2
  16. data/chef/cookbooks/pivotal_ci/recipes/limited_travis_ci_environment.rb +4 -0
  17. data/chef/cookbooks/pivotal_ci/templates/default/jenkins-job-config.xml.erb +8 -6
  18. data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/attributes/default.rb +0 -1
  19. data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/recipes/bootstrap.rb +41 -0
  20. data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/recipes/default.rb +1 -41
  21. data/chef/travis-cookbooks/ci_environment/apt/recipes/default.rb +8 -7
  22. data/chef/travis-cookbooks/ci_environment/bazaar/recipes/default.rb +1 -1
  23. data/chef/travis-cookbooks/ci_environment/cassandra/attributes/default.rb +6 -3
  24. data/chef/travis-cookbooks/ci_environment/cassandra/recipes/datastax.rb +1 -1
  25. data/chef/travis-cookbooks/ci_environment/cassandra/recipes/package.rb +1 -1
  26. data/chef/travis-cookbooks/ci_environment/cassandra/recipes/tarball.rb +6 -2
  27. data/chef/travis-cookbooks/ci_environment/cassandra/templates/default/cassandra.init.erb +58 -131
  28. data/chef/travis-cookbooks/ci_environment/chromium/recipes/default.rb +1 -1
  29. data/chef/travis-cookbooks/ci_environment/clang/attributes/tarball.rb +2 -7
  30. data/chef/travis-cookbooks/ci_environment/clang/recipes/default.rb +1 -1
  31. data/chef/travis-cookbooks/ci_environment/clang/recipes/tarball.rb +2 -4
  32. data/chef/travis-cookbooks/ci_environment/couchdb/recipes/default.rb +1 -1
  33. data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ppa.rb +1 -1
  34. data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu-12.04.rb +1 -1
  35. data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu1110_ppa.rb +1 -1
  36. data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu1204_ppa.rb +1 -1
  37. data/chef/travis-cookbooks/ci_environment/doxygen/recipes/default.rb +24 -0
  38. data/chef/travis-cookbooks/ci_environment/elasticsearch/attributes/default.rb +4 -1
  39. data/chef/travis-cookbooks/ci_environment/elasticsearch/recipes/default.rb +8 -5
  40. data/chef/travis-cookbooks/ci_environment/emacs/recipes/nox.rb +1 -1
  41. data/chef/travis-cookbooks/ci_environment/firefox/recipes/default.rb +1 -1
  42. data/chef/travis-cookbooks/ci_environment/git/recipes/default.rb +1 -1
  43. data/chef/travis-cookbooks/ci_environment/git/recipes/ppa.rb +1 -1
  44. data/chef/travis-cookbooks/ci_environment/golang/attributes/default.rb +3 -3
  45. data/chef/travis-cookbooks/ci_environment/gradle/attributes/tarball.rb +1 -1
  46. data/chef/travis-cookbooks/ci_environment/haskell/recipes/default.rb +1 -1
  47. data/chef/travis-cookbooks/ci_environment/haskell/recipes/ghc_package.rb +1 -1
  48. data/chef/travis-cookbooks/ci_environment/haskell/recipes/ghc_source.rb +1 -1
  49. data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_package.rb +1 -1
  50. data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_ppa.rb +1 -1
  51. data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_source.rb +1 -1
  52. data/chef/travis-cookbooks/ci_environment/haskell/recipes/source.rb +1 -1
  53. data/chef/travis-cookbooks/ci_environment/hbase/recipes/cdh4.rb +1 -1
  54. data/chef/travis-cookbooks/ci_environment/java/attributes/default.rb +4 -2
  55. data/chef/travis-cookbooks/ci_environment/java/recipes/default.rb +1 -1
  56. data/chef/travis-cookbooks/ci_environment/java/recipes/oraclejdk7.rb +6 -1
  57. data/chef/travis-cookbooks/ci_environment/kerl/attributes/source.rb +1 -1
  58. data/chef/travis-cookbooks/ci_environment/kerl/files/default/erlang.cookie +1 -0
  59. data/chef/travis-cookbooks/ci_environment/kerl/recipes/source.rb +8 -0
  60. data/chef/travis-cookbooks/ci_environment/kestrel/recipes/tarball.rb +1 -1
  61. data/chef/travis-cookbooks/ci_environment/leiningen/attributes/default.rb +1 -1
  62. data/chef/travis-cookbooks/ci_environment/leiningen/recipes/default.rb +1 -1
  63. data/chef/travis-cookbooks/ci_environment/leiningen/recipes/lein1x.rb +1 -1
  64. data/chef/travis-cookbooks/ci_environment/leiningen/recipes/lein2x.rb +1 -1
  65. data/chef/travis-cookbooks/ci_environment/libffi/recipes/default.rb +1 -1
  66. data/chef/travis-cookbooks/ci_environment/libgdbm/recipes/default.rb +1 -1
  67. data/chef/travis-cookbooks/ci_environment/libncurses/recipes/default.rb +1 -1
  68. data/chef/travis-cookbooks/ci_environment/libossp-uuid/recipes/default.rb +1 -1
  69. data/chef/travis-cookbooks/ci_environment/libreadline/recipes/default.rb +1 -1
  70. data/chef/travis-cookbooks/ci_environment/libssl/recipes/098.rb +1 -1
  71. data/chef/travis-cookbooks/ci_environment/libssl/recipes/default.rb +1 -1
  72. data/chef/travis-cookbooks/ci_environment/libxml/recipes/default.rb +1 -1
  73. data/chef/travis-cookbooks/ci_environment/lighttpd/recipes/default.rb +1 -1
  74. data/chef/travis-cookbooks/ci_environment/maven3/recipes/default.rb +5 -2
  75. data/chef/travis-cookbooks/ci_environment/maven3/recipes/package.rb +1 -1
  76. data/chef/travis-cookbooks/ci_environment/maven3/recipes/ppa.rb +1 -1
  77. data/chef/travis-cookbooks/ci_environment/maven3/recipes/tarball.rb +1 -1
  78. data/chef/travis-cookbooks/ci_environment/memcached/attributes/default.rb +1 -1
  79. data/chef/travis-cookbooks/ci_environment/memcached/attributes/ppa.rb +1 -1
  80. data/chef/travis-cookbooks/ci_environment/memcached/recipes/default.rb +1 -1
  81. data/chef/travis-cookbooks/ci_environment/memcached/recipes/ppa.rb +1 -1
  82. data/chef/travis-cookbooks/ci_environment/mercurial/recipes/default.rb +1 -1
  83. data/chef/travis-cookbooks/ci_environment/mercurial/recipes/ppa.rb +36 -0
  84. data/chef/travis-cookbooks/ci_environment/mongodb/attributes/mongodb.rb +1 -1
  85. data/chef/travis-cookbooks/ci_environment/mongodb/files/default/mongodb.sysvinit.sh +1 -1
  86. data/chef/travis-cookbooks/ci_environment/mongodb/recipes/apt.rb +5 -5
  87. data/chef/travis-cookbooks/ci_environment/mongodb/recipes/server.rb +5 -2
  88. data/chef/travis-cookbooks/ci_environment/mysql/attributes/default.rb +1 -3
  89. data/chef/travis-cookbooks/ci_environment/mysql/recipes/server_on_ramfs.rb +6 -1
  90. data/chef/travis-cookbooks/ci_environment/mysql/templates/default/my.cnf.erb +0 -2
  91. data/chef/travis-cookbooks/ci_environment/mysql/templates/default/ramfs/my.cnf.erb +0 -2
  92. data/chef/travis-cookbooks/ci_environment/neo4j-server/attributes/tarball.rb +13 -2
  93. data/chef/travis-cookbooks/ci_environment/neo4j-server/recipes/tarball.rb +26 -2
  94. data/chef/travis-cookbooks/ci_environment/networking_basic/recipes/default.rb +4 -1
  95. data/chef/travis-cookbooks/ci_environment/nodejs/attributes/multi.rb +3 -3
  96. data/chef/travis-cookbooks/ci_environment/nodejs/recipes/multi.rb +1 -1
  97. data/chef/travis-cookbooks/ci_environment/openssh/recipes/default.rb +1 -1
  98. data/chef/travis-cookbooks/ci_environment/perlbrew/attributes/multi.rb +1 -1
  99. data/chef/travis-cookbooks/ci_environment/phantomjs/attributes/default.rb +2 -2
  100. data/chef/travis-cookbooks/ci_environment/phantomjs/metadata.rb +3 -0
  101. data/chef/travis-cookbooks/ci_environment/phantomjs/recipes/default.rb +3 -1
  102. data/chef/travis-cookbooks/ci_environment/phantomjs/recipes/tarball.rb +3 -2
  103. data/chef/travis-cookbooks/ci_environment/php/attributes/default.rb +40 -2
  104. data/chef/travis-cookbooks/ci_environment/php/providers/pecl.rb +73 -0
  105. data/chef/travis-cookbooks/ci_environment/php/recipes/extensions.rb +25 -0
  106. data/chef/travis-cookbooks/ci_environment/php/recipes/multi.rb +5 -4
  107. data/chef/travis-cookbooks/ci_environment/php/resources/pecl.rb +10 -0
  108. data/chef/travis-cookbooks/ci_environment/phpbuild/attributes/default.rb +2 -2
  109. data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/after-install.d/phpunit.sh +58 -0
  110. data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/definitions/5.2.17 +3 -1
  111. data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/definitions/5.3.3 +2 -1
  112. data/chef/travis-cookbooks/ci_environment/phpbuild/providers/build.rb +1 -1
  113. data/chef/travis-cookbooks/ci_environment/phpbuild/recipes/default.rb +8 -10
  114. data/chef/travis-cookbooks/ci_environment/phpbuild/templates/default/default_configure_options.erb +4 -0
  115. data/chef/travis-cookbooks/ci_environment/phpenv/attributes/default.rb +6 -0
  116. data/chef/travis-cookbooks/ci_environment/phpenv/recipes/default.rb +11 -7
  117. data/chef/travis-cookbooks/ci_environment/postgresql/recipes/server_on_ramfs.rb +2 -2
  118. data/chef/travis-cookbooks/ci_environment/python/attributes/default.rb +2 -2
  119. data/chef/travis-cookbooks/ci_environment/python/recipes/multi.rb +10 -3
  120. data/chef/travis-cookbooks/ci_environment/rabbitmq/attributes/default.rb +3 -0
  121. data/chef/travis-cookbooks/ci_environment/rabbitmq/recipes/default.rb +6 -2
  122. data/chef/travis-cookbooks/ci_environment/ragel/recipes/custom.rb +1 -1
  123. data/chef/travis-cookbooks/ci_environment/ragel/recipes/default.rb +1 -1
  124. data/chef/travis-cookbooks/ci_environment/redis/attributes/default.rb +3 -0
  125. data/chef/travis-cookbooks/ci_environment/redis/recipes/default.rb +6 -3
  126. data/chef/travis-cookbooks/ci_environment/redis/recipes/ppa.rb +1 -1
  127. data/chef/travis-cookbooks/ci_environment/riak/attributes/default.rb +1 -0
  128. data/chef/travis-cookbooks/ci_environment/riak/attributes/package.rb +3 -3
  129. data/chef/travis-cookbooks/{messaging_broker/openssl/recipes/default.rb → ci_environment/riak/attributes/service.rb} +4 -3
  130. data/chef/travis-cookbooks/ci_environment/riak/recipes/config.rb +2 -2
  131. data/chef/travis-cookbooks/ci_environment/riak/recipes/default.rb +12 -5
  132. data/chef/travis-cookbooks/ci_environment/rvm/attributes/default.rb +1 -1
  133. data/chef/travis-cookbooks/ci_environment/rvm/attributes/multi.rb +2 -0
  134. data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/global.gems +1 -1
  135. data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/jruby/global.gems +1 -1
  136. data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/2.0.0/global.gems +2 -0
  137. data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/head/global.gems +2 -0
  138. data/chef/travis-cookbooks/ci_environment/rvm/recipes/default.rb +23 -1
  139. data/chef/travis-cookbooks/ci_environment/rvm/recipes/multi.rb +2 -2
  140. data/chef/travis-cookbooks/ci_environment/rvm/templates/default/bundler_config.yml.erb +2 -0
  141. data/chef/travis-cookbooks/ci_environment/sbt/CHANGELOG.md +20 -0
  142. data/chef/travis-cookbooks/ci_environment/sbt/LICENSE +201 -0
  143. data/chef/travis-cookbooks/ci_environment/sbt/README.md +78 -2
  144. data/chef/travis-cookbooks/ci_environment/sbt/attributes/default.rb +36 -10
  145. data/chef/travis-cookbooks/ci_environment/sbt/metadata.json +27 -17
  146. data/chef/travis-cookbooks/ci_environment/sbt/metadata.rb +13 -6
  147. data/chef/travis-cookbooks/ci_environment/sbt/recipes/default.rb +101 -51
  148. data/chef/travis-cookbooks/ci_environment/sbt/templates/default/jvmopts.erb +7 -0
  149. data/chef/travis-cookbooks/ci_environment/sbt/templates/default/sbtopts.erb +54 -0
  150. data/chef/travis-cookbooks/ci_environment/sphinx/attributes/default.rb +2 -2
  151. data/chef/travis-cookbooks/ci_environment/sphinx/metadata.rb +4 -4
  152. data/chef/travis-cookbooks/ci_environment/sphinx/recipes/all.rb +1 -1
  153. data/chef/travis-cookbooks/ci_environment/sphinx/recipes/default.rb +1 -1
  154. data/chef/travis-cookbooks/{messaging_broker/build-essential/recipes/default.rb → ci_environment/sqlite/recipes/ppa.rb} +13 -24
  155. data/chef/travis-cookbooks/ci_environment/subversion/recipes/default.rb +1 -1
  156. data/chef/travis-cookbooks/ci_environment/sweeper/recipes/default.rb +1 -1
  157. data/chef/travis-cookbooks/ci_environment/travis_build_environment/attributes/default.rb +2 -0
  158. data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/ci_user.rb +2 -2
  159. data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/default.rb +1 -3
  160. data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/root.rb +5 -1
  161. data/chef/travis-cookbooks/ci_environment/travis_build_environment/templates/default/ci_user/{dot_bashrc.sh → dot_bashrc.sh.erb} +0 -4
  162. data/chef/travis-cookbooks/ci_environment/unarchivers/recipes/default.rb +1 -1
  163. data/chef/travis-cookbooks/ci_environment/xserver/metadata.rb +3 -0
  164. data/chef/travis-cookbooks/ci_environment/xserver/recipes/default.rb +1 -1
  165. data/chef/travis-cookbooks/ci_environment/zeromq/recipes/default.rb +6 -23
  166. data/chef/travis-cookbooks/ci_environment/zeromq/recipes/{20x.rb → ppa.rb} +14 -14
  167. data/chef/travis-cookbooks/ci_environment/zookeeper/recipes/cdh4.rb +1 -1
  168. data/chef/travis-cookbooks/worker_host/java/metadata.rb +1 -1
  169. data/chef/travis-cookbooks/worker_host/java/recipes/openjdk.rb +6 -0
  170. data/chef/travis-cookbooks/worker_host/jruby/attributes/default.rb +1 -1
  171. data/chef/travis-cookbooks/worker_host/jruby/metadata.rb +1 -1
  172. data/chef/travis-cookbooks/worker_host/jruby/recipes/default.rb +1 -0
  173. data/chef/travis-cookbooks/worker_host/monit/recipes/default.rb +21 -17
  174. data/chef/travis-cookbooks/worker_host/networking_basic/metadata.rb +1 -1
  175. data/chef/travis-cookbooks/worker_host/networking_basic/recipes/default.rb +0 -6
  176. data/chef/travis-cookbooks/worker_host/ntp/.gitignore +1 -0
  177. data/chef/travis-cookbooks/worker_host/ntp/.travis.yml +6 -0
  178. data/chef/travis-cookbooks/worker_host/ntp/CHANGELOG.md +35 -0
  179. data/chef/travis-cookbooks/worker_host/ntp/CONTRIBUTING +29 -0
  180. data/chef/travis-cookbooks/worker_host/ntp/LICENSE +201 -0
  181. data/chef/travis-cookbooks/worker_host/ntp/README.md +163 -0
  182. data/chef/travis-cookbooks/worker_host/ntp/Rakefile +19 -0
  183. data/chef/travis-cookbooks/worker_host/ntp/TESTING.md +213 -0
  184. data/chef/travis-cookbooks/worker_host/ntp/attributes/default.rb +54 -0
  185. data/chef/travis-cookbooks/{messaging_broker/rabbitmq/resources/vhost.rb → worker_host/ntp/attributes/ntpdate.rb} +6 -7
  186. data/chef/travis-cookbooks/worker_host/ntp/chefignore +19 -0
  187. data/chef/travis-cookbooks/worker_host/ntp/files/default/ntp.leapseconds +222 -0
  188. data/chef/travis-cookbooks/worker_host/ntp/metadata.json +117 -0
  189. data/chef/travis-cookbooks/worker_host/ntp/metadata.rb +45 -0
  190. data/chef/travis-cookbooks/worker_host/ntp/recipes/default.rb +50 -0
  191. data/chef/travis-cookbooks/worker_host/ntp/recipes/disable.rb +22 -0
  192. data/chef/travis-cookbooks/worker_host/ntp/recipes/ntpdate.rb +36 -0
  193. data/chef/travis-cookbooks/{messaging_broker/openssl/libraries/secure_password.rb → worker_host/ntp/recipes/undo.rb} +17 -18
  194. data/chef/travis-cookbooks/worker_host/ntp/templates/default/ntp.conf.erb +55 -0
  195. data/chef/travis-cookbooks/worker_host/ntp/templates/default/ntpdate.erb +14 -0
  196. data/chef/travis-cookbooks/worker_host/rvm/recipes/multi.rb +1 -1
  197. data/chef/travis-cookbooks/worker_host/travis_worker/attributes/default.rb +10 -3
  198. data/chef/travis-cookbooks/worker_host/travis_worker/files/default/signal_wrapper.rb +22 -0
  199. data/chef/travis-cookbooks/worker_host/travis_worker/metadata.rb +2 -2
  200. data/chef/travis-cookbooks/worker_host/travis_worker/recipes/bluebox.rb +97 -0
  201. data/chef/travis-cookbooks/worker_host/travis_worker/recipes/default.rb +25 -15
  202. data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/sv-travis-worker-run.erb +1 -1
  203. data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/worker-bluebox.yml.erb +21 -0
  204. data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/worker.yml.erb +0 -4
  205. data/chef/travis-cookbooks/worker_host/travis_worker_collectd/metadata.rb +1 -0
  206. data/chef/travis-cookbooks/worker_host/travis_worker_collectd/recipes/bluebox.rb +15 -0
  207. data/chef/travis-cookbooks/worker_host/travis_worker_collectd/recipes/default.rb +1 -0
  208. data/chef/travis-cookbooks/worker_host/users/recipes/default.rb +5 -0
  209. data/cookbooks/.gitkeep +3 -0
  210. data/lib/lobot.rb +8 -4
  211. data/lib/lobot/amazon.rb +33 -19
  212. data/lib/lobot/cli.rb +70 -46
  213. data/lib/lobot/config.rb +151 -19
  214. data/lib/lobot/configuration_wizard.rb +117 -0
  215. data/lib/lobot/keychain.rb +36 -0
  216. data/lib/lobot/password.rb +13 -0
  217. data/lib/lobot/sobo.rb +57 -13
  218. data/lib/lobot/templates/default_rails_build_script.sh +13 -0
  219. data/lib/lobot/version.rb +2 -2
  220. data/lobot.gemspec +4 -5
  221. data/script/bootstrap_server.sh +1 -1
  222. data/script/ci_build.sh +13 -0
  223. data/spec/assets/test_cert.crt +18 -0
  224. data/spec/fixtures/ssh_keys/vagrant_test_key +27 -0
  225. data/spec/fixtures/ssh_keys/vagrant_test_key.pub +1 -0
  226. data/spec/lib/lobot/amazon_spec.rb +80 -39
  227. data/spec/lib/lobot/cli_spec.rb +223 -154
  228. data/spec/lib/lobot/config_spec.rb +207 -5
  229. data/spec/lib/lobot/configuration_wizard_spec.rb +347 -0
  230. data/spec/lib/lobot/keychain_spec.rb +33 -0
  231. data/spec/lib/lobot/password_spec.rb +15 -0
  232. data/spec/spec_helper.rb +19 -1
  233. data/templates/Gemfile-remote +4 -0
  234. metadata +83 -100
  235. data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/1.8.6/global.gems +0 -2
  236. data/chef/travis-cookbooks/ci_environment/travis_build_environment/files/default/root/dot_bashrc.sh +0 -86
  237. data/chef/travis-cookbooks/ci_environment/zeromq/attributes/default.rb +0 -7
  238. data/chef/travis-cookbooks/messaging_broker/build-essential/README.md +0 -24
  239. data/chef/travis-cookbooks/messaging_broker/build-essential/metadata.rb +0 -10
  240. data/chef/travis-cookbooks/messaging_broker/emacs/metadata.rb +0 -11
  241. data/chef/travis-cookbooks/messaging_broker/emacs/recipes/default.rb +0 -21
  242. data/chef/travis-cookbooks/messaging_broker/erlang/attributes/default.rb +0 -1
  243. data/chef/travis-cookbooks/messaging_broker/erlang/metadata.rb +0 -11
  244. data/chef/travis-cookbooks/messaging_broker/erlang/recipes/default.rb +0 -27
  245. data/chef/travis-cookbooks/messaging_broker/git/README.rdoc +0 -37
  246. data/chef/travis-cookbooks/messaging_broker/git/metadata.rb +0 -16
  247. data/chef/travis-cookbooks/messaging_broker/git/recipes/default.rb +0 -24
  248. data/chef/travis-cookbooks/messaging_broker/git/recipes/server.rb +0 -34
  249. data/chef/travis-cookbooks/messaging_broker/git/templates/default/sv-git-daemon-log-run.erb +0 -2
  250. data/chef/travis-cookbooks/messaging_broker/git/templates/default/sv-git-daemon-run.erb +0 -3
  251. data/chef/travis-cookbooks/messaging_broker/haproxy/README.md +0 -79
  252. data/chef/travis-cookbooks/messaging_broker/haproxy/attributes/default.rb +0 -22
  253. data/chef/travis-cookbooks/messaging_broker/haproxy/metadata.rb +0 -13
  254. data/chef/travis-cookbooks/messaging_broker/haproxy/recipes/app_lb.rb +0 -50
  255. data/chef/travis-cookbooks/messaging_broker/haproxy/recipes/default.rb +0 -42
  256. data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy-app_lb.cfg.erb +0 -34
  257. data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy-default.erb +0 -4
  258. data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy.cfg.erb +0 -27
  259. data/chef/travis-cookbooks/messaging_broker/iptables/definitions/iptables_rule.rb +0 -35
  260. data/chef/travis-cookbooks/messaging_broker/iptables/files/default/rebuild-iptables +0 -284
  261. data/chef/travis-cookbooks/messaging_broker/iptables/metadata.rb +0 -10
  262. data/chef/travis-cookbooks/messaging_broker/iptables/recipes/default.rb +0 -50
  263. data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/all_established.erb +0 -2
  264. data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/all_icmp.erb +0 -2
  265. data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/iptables_load.erb +0 -3
  266. data/chef/travis-cookbooks/messaging_broker/openssl/README.md +0 -37
  267. data/chef/travis-cookbooks/messaging_broker/openssl/metadata.rb +0 -8
  268. data/chef/travis-cookbooks/messaging_broker/rabbitmq/README.md +0 -86
  269. data/chef/travis-cookbooks/messaging_broker/rabbitmq/attributes/default.rb +0 -10
  270. data/chef/travis-cookbooks/messaging_broker/rabbitmq/metadata.rb +0 -63
  271. data/chef/travis-cookbooks/messaging_broker/rabbitmq/providers/user.rb +0 -66
  272. data/chef/travis-cookbooks/messaging_broker/rabbitmq/providers/vhost.rb +0 -34
  273. data/chef/travis-cookbooks/messaging_broker/rabbitmq/recipes/cluster.rb +0 -35
  274. data/chef/travis-cookbooks/messaging_broker/rabbitmq/recipes/default.rb +0 -51
  275. data/chef/travis-cookbooks/messaging_broker/rabbitmq/resources/user.rb +0 -25
  276. data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/doterlang.cookie.erb +0 -1
  277. data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq-env.conf.erb +0 -10
  278. data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq_cluster.config.erb +0 -5
  279. data/ci_build.sh +0 -20
  280. data/docs/ci_yml.md +0 -39
  281. data/features/ci.feature +0 -29
  282. data/features/config/secrets.yml.example +0 -4
  283. data/features/step_definitions/ci_steps.rb +0 -137
  284. data/features/support/env.rb +0 -12
  285. data/lib/generators/lobot/USAGE +0 -15
  286. data/lib/generators/lobot/config_generator.rb +0 -141
  287. data/lib/generators/lobot/install_generator.rb +0 -25
  288. data/lib/generators/lobot/templates/Capfile +0 -6
  289. data/lib/generators/lobot/templates/ci.yml +0 -22
  290. data/lib/generators/lobot/templates/ci_build.sh +0 -22
  291. data/lib/generators/lobot/templates/deploy-ci.rb +0 -7
  292. data/lib/generators/lobot/templates/soloistrc +0 -23
  293. data/lib/lobot/jenkins.rb +0 -17
  294. data/lib/lobot/railtie.rb +0 -20
  295. data/lib/lobot/recipes/ci.rb +0 -78
  296. data/lib/lobot/tasks/ci.rake +0 -93
  297. data/spec/lib/lobot/jenkins_spec.rb +0 -14
@@ -1,25 +0,0 @@
1
- #
2
- # Cookbook Name:: rabbitmq
3
- # Resource:: user
4
- #
5
- # Copyright 2011, Opscode, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- actions :add, :delete, :set_permissions, :clear_permissions
21
-
22
- attribute :user, :kind_of => String, :name_attribute => true
23
- attribute :password, :kind_of => String
24
- attribute :vhost, :kind_of => String
25
- attribute :permissions, :kind_of => String
@@ -1 +0,0 @@
1
- <%= node[:rabbitmq][:erlang_cookie] %>
@@ -1,10 +0,0 @@
1
- ###
2
- # Generated by Chef for <%= node[:fqdn] %>
3
- ###
4
-
5
- NODENAME=<%= node[:rabbitmq][:nodename] %>
6
- <% if node[:rabbitmq][:address] %>NODE_IP_ADDRESS=<%= node[:rabbitmq][:address] %><% end %>
7
- <% if node[:rabbitmq][:port] %>NODE_PORT=<%= node[:rabbitmq][:port] %><% end %>
8
- <% if node[:rabbitmq][:config] %>CONFIG_FILE=<%= node[:rabbitmq][:config] %><% end %>
9
- <% if node[:rabbitmq][:logdir] %>LOG_BASE=<%= node[:rabbitmq][:logdir] %><% end %>
10
- <% if node[:rabbitmq][:mnesiadir] %>MNESIA_BASE=<%= node[:rabbitmq][:mnesiadir] %><% end %>
@@ -1,5 +0,0 @@
1
- %%%
2
- %% Generated by Chef for <%= node[:fqdn] %>
3
- %%%
4
-
5
- [<%= node[:rabbitmq][:cluster_disk_nodes].map{|n| "\'#{n}\'"}.join(',') %>].
@@ -1,20 +0,0 @@
1
- #!/bin/bash
2
-
3
- source $HOME/.rvm/scripts/rvm && source .rvmrc
4
-
5
- # install bundler if necessary
6
- gem list --local bundler | grep bundler || gem install bundler || exit 1
7
-
8
- # debugging info
9
- echo USER=$USER && ruby --version && which ruby && which bundle
10
-
11
- # conditionally install project gems from Gemfile
12
- bundle check || bundle install || exit 1
13
-
14
- # remove known_hosts2 - ec2 recycles ips
15
- # known_hosts is owned by root and trusts github
16
- rm ~/.ssh/known_hosts2
17
-
18
- cp ~/secrets.yml features/config/
19
-
20
- bundle exec rake default --trace
@@ -1,39 +0,0 @@
1
- # app_name
2
- A short name for your application. This will be used as the name of the build in jenkins.
3
-
4
- # git_location
5
- The location of your remote git repository which Jenkins will poll and pull from on changes. If it's a public project, use the http://github.com/user/project.git url. If it's a private project, use the ssh form, git@github.com:user/project.git.
6
-
7
- # basic_auth:
8
- - username: # The username you will use to access the Jenkins web interface
9
- password: # The password you will use to access the Jenkins web interface
10
- The basic auth field is an array of hashes containing the usernames and passwords you would like to be able to access jenkins.
11
-
12
- # credentials:
13
- Currently Lobot only supports managing EC2 servers. To start a new instance, the rake task needs to be able to connect to ec2 and ask it to launch a server.
14
- ## aws_access_key_id:
15
- The Access Key for your Amazon AWS account. You can obtain it by visiting
16
- https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=access-key
17
- ## aws_secret_access_key: The Secret Access Key for your Amazon AWS account
18
- This will be available at the same URL.
19
- ## provider: AWS
20
- This tells Lobot to use Amazon web services. Currently AWS is the only valid value.
21
-
22
- # server:
23
- The server section is where Lobot keeps track of the instance that it launches when you run rake ci:server_start
24
- ## name:
25
- The name is the server's machine name - either ip address or DNS name. Usually you'll just run ci:server_start to populate it.
26
- # instance_id:
27
- The instance_id is also saved, in order to facilitate stopping and starting instances. Stopping" is AWS's term for shutting down an instance temporarily - when it is started, it will use the same EBS volume and continue where it left off. However, it will receive a new ip address and DNS name.
28
-
29
- # build_command: ./script/ci_build.sh
30
- The build command is the shell script that Jenkins will execute to run your build. While you could put this script is the Jenkins configuration, it's clearer to have it in a script directly checked into your project.
31
-
32
- # ec2_server_access:
33
- key_pair_name: myapp_ci
34
- id_rsa_path: ~/.ssh/id_rsa
35
-
36
- The EC2 server access section is perhaps the most confusing field in the ci.yml file. This section tells Lobot what ssh keys to use to access the servers it spins up. When you run rake ci:sever_start, Lobot first looks in your ec2 account to see if they key pair name you specified exists - if it doesn't, it uploads the specified #{id_rsa_path}.pub to amazon, and names it #{key_pair_name}. It then launches the server, telling EC2 to use the key pair specified.
37
-
38
- # github_private_ssh_key_path: ~/.ssh/id_github_current
39
- This is the path to the ssh private key that jenkins will use when connecting to github.
@@ -1,29 +0,0 @@
1
- Feature: CI
2
-
3
- Background:
4
- Given the temp directory is clean
5
- And I am in the temp directory
6
-
7
- Scenario: Installing Lobot on a rails3 project
8
- When I create a new Rails project
9
- And I vendor Lobot
10
- And I put Lobot in the Gemfile
11
- And I run bundle install
12
- And I run the Lobot generator for "Jenkins"
13
- Then rake reports ci tasks as being available
14
-
15
- @aws
16
- Scenario: Install Jenkins CI on Amazon AWS using new Rails template
17
- When I create a new Rails project
18
- And I vendor Lobot
19
- And I put Lobot in the Gemfile
20
- And I add a gem with an https://github.com source
21
- And I run bundle install
22
- And I run the Lobot generator for "Jenkins"
23
- And I enter my info into the ci.yml file
24
- And I make changes to be committed
25
- And I push to git
26
- And I start the server
27
- And I bootstrap
28
- And I deploy
29
- Then CI is green
@@ -1,4 +0,0 @@
1
- ---
2
- aws_access_key_id:
3
- aws_secret_access_key:
4
- github_private_ssh_key_path: ~/.ssh/id_github_current
@@ -1,137 +0,0 @@
1
- Given /^the temp directory is clean$/ do
2
- system!("rm -rf /tmp/lobot-test")
3
- system!("mkdir -p /tmp/lobot-test")
4
- end
5
-
6
- Given /^I am in the temp directory$/ do
7
- Dir.chdir(LOBOT_TEMP_DIRECTORY)
8
- end
9
-
10
- When /^I create a new Rails project$/ do
11
- system!("rvm ruby-1.9.3-p194 do rvm gemset create testapp")
12
- system!("rails new testapp")
13
- system!("cd testapp && echo 'rvm use ruby-1.9.3-p194@testapp' > .rvmrc")
14
- end
15
-
16
- When /^I vendor Lobot$/ do
17
- lobot_dir = File.expand_path('../../', File.dirname(__FILE__))
18
- system! "cd #{lobot_dir} && rake build"
19
- system! "mkdir -p testapp/vendor/cache/"
20
- system! "cp #{lobot_dir}/pkg/lobot-#{Lobot::VERSION}.gem testapp/vendor/cache/"
21
- end
22
-
23
- When /^I put Lobot in the Gemfile$/ do
24
- lobot_path = File.expand_path('../../', File.dirname(__FILE__))
25
- system!(%{echo "gem 'lobot'" >> testapp/Gemfile})
26
- end
27
-
28
- When /^I add a gem with an https:\/\/github.com source$/ do
29
- system!(%{echo "gem 'greyhawkweather', :git => 'https://github.com/verdammelt/Greyhawk-Weather.git'" >> testapp/Gemfile})
30
- system!("cd testapp && bundle install")
31
- end
32
-
33
- When /^I run bundle install$/ do
34
- system("cd testapp && gem uninstall lobot")
35
- system("cd testapp && gem install bundler")
36
- system!("cd testapp && bundle install")
37
- system!('cd testapp && bundle exec gem list | grep lobot')
38
- end
39
-
40
- When /^I run the Lobot generator for "([^"]*)"$/ do |build_server_name|
41
- system!("cd testapp && rails generate lobot:install #{build_server_name}")
42
- system!('ls testapp | grep -s soloistrc')
43
- end
44
-
45
- When /^I enter my info into the ci\.yml file$/ do
46
- hostname = `hostname`.strip
47
- secrets_file = File.expand_path('../config/secrets.yml', File.dirname(__FILE__))
48
- raise "Missing #{secrets_file}, needed for AWS test." unless File.exist?(secrets_file)
49
- secrets = YAML.load_file(secrets_file)
50
- raise "Missing AWS secret access key" unless secrets["aws_secret_access_key"].to_s != ""
51
- raise "Missing AWS access key id" unless secrets["aws_access_key_id"].to_s != ""
52
- raise "Missing github private key path" unless secrets["github_private_ssh_key_path"].to_s != ""
53
-
54
- raise "Missing private SSH key for AWS!" unless File.exist?(File.expand_path("~/.ssh/id_github_current"))
55
- ci_conf_location = 'testapp/config/ci.yml'
56
- ci_yml = YAML.load_file(ci_conf_location)
57
- ci_yml.merge!(
58
- 'app_name' => 'testapp',
59
- 'git_location' => 'git@github.com:pivotalprivate/ci-smoke.git',
60
- 'basic_auth' => [{ 'username' => 'testapp', 'password' => 'testpass' }],
61
- 'credentials' => { 'aws_access_key_id' => secrets['aws_access_key_id'], 'aws_secret_access_key' => secrets['aws_secret_access_key'], 'provider' => 'AWS' },
62
- 'ec2_server_access' => {'key_pair_name' => "lobot_cucumber_key_pair_#{hostname}", 'id_rsa_path' => '~/.ssh/id_github_current'},
63
- 'github_private_ssh_key_path' => secrets["github_private_ssh_key_path"]
64
- )
65
- # ci_yml['server']['name'] = '' # This can be used to merge in a server which is already running if you want to skip the setup steps while iterating on a test
66
- File.open(ci_conf_location, "w") do |f|
67
- f << ci_yml.to_yaml
68
- f << File.read(secrets_file)
69
- end
70
- end
71
-
72
- When /^I make changes to be committed$/ do
73
- lobot_dir = File.expand_path('../../', File.dirname(__FILE__))
74
- system! "rm testapp/vendor/cache/*"
75
- system! "cp #{lobot_dir}/pkg/lobot-#{Lobot::VERSION}.gem testapp/vendor/cache/"
76
- system! "echo 'config/ci.yml' >> testapp/.gitignore"
77
- ["headless", "rspec-rails", "jasmine"].each do |gem|
78
- system!(%{echo "gem '#{gem}'" >> testapp/Gemfile})
79
- end
80
- system!("cd testapp && bundle install")
81
- system!("cd testapp && bundle exec rails g jasmine:install")
82
- system!("cd testapp && bundle exec rails g jasmine:examples")
83
- system!(%{cd testapp && echo "task :default => 'jasmine:ci'" >> Rakefile})
84
-
85
- spec_contents = <<-RUBY
86
- require 'rspec'
87
-
88
- describe "The World" do
89
- it "should be green and blue" do
90
- the_world = ["green", "blue"]
91
- the_world.should include("green")
92
- the_world.should include("blue")
93
- end
94
- end
95
- RUBY
96
-
97
- File.open("testapp/spec/hello_world_spec.rb", "w") do |file|
98
- file.write(spec_contents)
99
- end
100
- end
101
-
102
- When /^I push to git$/ do
103
- system! "cd testapp && git init"
104
- system! "cd testapp && git add ."
105
- system! "cd testapp && git commit -m'initial commit'"
106
- system "cd testapp && git remote rm origin" # Ignore failures
107
- system! "cd testapp && git remote add origin git@github.com:pivotalprivate/ci-smoke.git"
108
- system! "cd testapp && git push --force -u origin master"
109
- end
110
-
111
- When /^I start the server$/ do
112
- system! "cd testapp && bundle exec rake ci:create_server"
113
- server_ip = YAML.load(File.read('testapp/config/ci.yml'))["server"]["elastic_ip"]
114
- system! "cat ~/.ssh/known_hosts | grep -v #{server_ip} > /tmp/known_hosts"
115
- system! "mv /tmp/known_hosts ~/.ssh/known_hosts"
116
- end
117
-
118
- When /^I bootstrap$/ do
119
- system!("cd testapp && bundle install")
120
- system! "cd testapp && bundle exec cap ci bootstrap"
121
- end
122
-
123
- When /^I deploy$/ do
124
- system! "cd testapp && cap ci chef"
125
- end
126
-
127
- Then /^CI is green$/ do
128
- Timeout::timeout(600) do
129
- until system("cd testapp && bundle exec rake ci:status")
130
- sleep 5
131
- end
132
- end
133
- end
134
-
135
- Then /^rake reports ci tasks as being available$/ do
136
- `cd testapp && bundle exec rake -T`.should include("ci:start_server")
137
- end
@@ -1,12 +0,0 @@
1
- require "rubygems"
2
- require File.expand_path('../../lib/lobot', File.dirname(__FILE__))
3
- LOBOT_TEMP_DIRECTORY = "/tmp/lobot-test"
4
-
5
- def system!(str)
6
- system(str)
7
- raise "Command Failed: #{str} with exit code #{$?.exitstatus}" unless $?.success?
8
- end
9
-
10
- After '@aws' do
11
- system "cd #{LOBOT_TEMP_DIRECTORY}/testapp && rake ci:destroy_server" unless ENV["KEEP_INSTANCE"]
12
- end
@@ -1,15 +0,0 @@
1
- Description:
2
- Lobot is a gem that will help you spin-up, bootstrap, and install Jenkins for CI for your Rails app on Amazon EC2.
3
-
4
- Example:
5
- rails generate lobot:install
6
-
7
- This will create:
8
- chef/ - chef cookbooks in a subfolder
9
- config/ci.yml - a configuration file for lobot
10
- script/ci_build.sh - a build script you can use to run your CI build
11
- config/capistrano/ci.rb - a set of lobot specific Capistrano tasks
12
-
13
- rails generate lobot:config
14
-
15
- This will configure config/ci.yml for you
@@ -1,141 +0,0 @@
1
- module Lobot
2
- class ConfigGenerator < Rails::Generators::Base
3
- source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
4
-
5
- def generate_ci_config
6
- default_git_location = nil
7
- if File.exist?(Rails.root.join(".git/config"))
8
- default_git_location = `cat .git/config | grep url`.strip.split.last
9
- else
10
- puts "nope"
11
- end
12
- default_app_name = File.basename(Rails.root)
13
- config = {
14
- 'app_name' => default_app_name,
15
- 'git_location' => default_git_location,
16
- 'basic_auth' => [
17
- {
18
- 'username' => "ci"
19
- }
20
- ],
21
- 'credentials' => {
22
- 'provider' => "AWS"
23
- },
24
- 'server' => {
25
- 'name' => nil,
26
- 'instance_id' => nil,
27
- 'flavor_id' => "c1.medium",
28
- 'security_group' => "ci_servers",
29
- 'ssh_port' => "22"
30
- },
31
- 'build_command' => "./script/ci_build.sh",
32
- 'ec2_server_access' => {
33
- "key_pair_name" => "#{default_app_name}_ci",
34
- "id_rsa_path" => File.expand_path("~/.ssh/id_rsa")
35
- },
36
- "github_private_ssh_key_path" => File.expand_path("~/.ssh/id_rsa")
37
- }
38
-
39
- say "* The name of your application as it will appear in CI", :green
40
- app_name = ask("Application Name [#{config['app_name']}]:", :bold)
41
- config['app_name'] = app_name if app_name != ""
42
-
43
- say "* The location of your remote git repository which CI will poll and pull from on changes", :green
44
- git_location = ask("Git Repository Location [#{config['git_location']}]:", :bold)
45
- config['git_location'] = git_location if git_location != ""
46
-
47
- say "* The username you will use to access the CI web interface", :green
48
- ci_username = ask("CI Username [#{config['basic_auth'][0]['username']}]:", :bold)
49
- config['basic_auth'][0]['username'] = ci_username if ci_username != ""
50
-
51
- say "* The password you will use to access the CI web interface", :green
52
- while true do
53
- ci_password = ask("Choose a CI password:", :bold)
54
- config['basic_auth'][0]['password'] = ci_password
55
- if ci_password == ""
56
- say "Password cannot be blank", :red
57
- else
58
- break
59
- end
60
- end
61
-
62
- say (<<-EOS).chop, :green
63
-
64
- * See https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=access-key
65
- * for access key id and secret access key
66
- EOS
67
- while true do
68
- aws_access_key_id = ask("AWS Access Key ID:", :bold)
69
- config['credentials']['aws_access_key_id'] = aws_access_key_id
70
- if aws_access_key_id == ""
71
- say "AWS Access Key ID cannot be blank", :red
72
- else
73
- break
74
- end
75
- end
76
-
77
- while true do
78
- aws_secret_access_key = ask("AWS Secret Access Key:", :bold)
79
- config['credentials']['aws_secret_access_key'] = aws_secret_access_key
80
- if aws_secret_access_key == ""
81
- say "AWS Secret Access Key cannot be blank", :red
82
- else
83
- break
84
- end
85
- end
86
-
87
- build_command = ask("Build Command: [#{config['build_command']}]:", :bold)
88
- config['build_command'] = build_command if build_command != ""
89
-
90
- say (<<-EOS).chop, :green
91
-
92
- * This should refer to an SSH key pair that you have already generated. You may wish to generate a new key
93
- * separate from what you may already be using for github or other systems.
94
- * For a tutorial on this see: http://open.bsdcow.org/histerical/tutorials/ssh_pubkey_auth#1.2
95
- EOS
96
- while true do
97
- id_rsa_path = ask("SSH Private Key for EC2 Access [#{config['ec2_server_access']['id_rsa_path'].split('/').last}]:", :bold)
98
- config['ec2_server_access']['id_rsa_path'] = id_rsa_path if id_rsa_path != ""
99
- if config['ec2_server_access']['id_rsa_path'] != File.expand_path(config['ec2_server_access']['id_rsa_path'])
100
- config['ec2_server_access']['id_rsa_path'] = File.expand_path(File.join(ENV['HOME'], '.ssh', config['ec2_server_access']['id_rsa_path']))
101
- end
102
- if File.exist?(config['ec2_server_access']['id_rsa_path']) && File.exist?("#{config['ec2_server_access']['id_rsa_path']}.pub")
103
- break
104
- else
105
- say "Unable to find both #{config['ec2_server_access']['id_rsa_path']} and #{config['ec2_server_access']['id_rsa_path']}.pub", :red
106
- end
107
- end
108
-
109
- say (<<-EOS).chop, :green
110
-
111
- * This needs to refer to an SSH Private Key that has been associated an account that has access to the git
112
- * repository you entered above. On github this will be listed here: https://github.com/settings/ssh
113
- EOS
114
- while true do
115
- github_private_ssh_key_path = ask("SSH Private Key for Github [#{config['github_private_ssh_key_path'].split('/').last}]:", :bold)
116
- config['github_private_ssh_key_path'] = github_private_ssh_key_path if github_private_ssh_key_path != ""
117
- if config['github_private_ssh_key_path'] != File.expand_path(config['github_private_ssh_key_path'])
118
- config['github_private_ssh_key_path'] = File.expand_path(File.join(ENV['HOME'], '.ssh', config['github_private_ssh_key_path']))
119
- end
120
- if File.exist?(config['github_private_ssh_key_path'])
121
- break
122
- else
123
- say "Unable to find #{config['github_private_ssh_key_path']}", :red
124
- end
125
- end
126
-
127
- config_ci = YAML.load_file(Rails.root.join("config/ci.yml")) rescue {}
128
- config_ci.merge!(config)
129
-
130
- File.open(Rails.root.join("config/ci.yml"), "w") do |f|
131
- f << config_ci.to_yaml
132
- end
133
-
134
- say "\n\nconfig/ci.yml configured:\n#{File.read(Rails.root.join('config/ci.yml'))}\n"
135
- say "You can edit this file to change any additional defaults."
136
- say "Before continuing, be sure to push uncommitted changes to your git repository.", :green
137
- say "For next steps, see the lobot README.md"
138
- end
139
- end
140
- end
141
-