Capistrano::Scm::None
This is SCM Plugin
for Capistrano 3.7+. It allows you define your own
deploy:upload task that gets called to put code on the remote hosts.
Why? I use Capistrano to deploy a number of Clojure apps. These apps only need the compiled JAR file. Maybe one or two support files. Also makes sense to compile once on the local machine/build server and deploy to multiple hosts. I love Capistrano and have been using it for a long time, but w/ the v3 the copy deploy strategry was removed. I don't really disagree with that and this is actually cleaner then how I was doing things in v2.
Installation
Add this line to your application's Gemfile:
group :development do
gem "capistrano-scm-none", "~> 0.1"
endAnd then execute:
$ bundle
Or install it yourself as:
$ gem install capistrano-scm-none
Usage
In your Capfile require the gem and install the plugin. Comment out
any current SCM plugin.
require 'capistrano/scm/none'
install_plugin Capistrano::Scm::None::PluginIn a rake file in /lib/capistrano/tasks add a deploy:upload task that
uploads whatever files you need.
Here's an example.
namespace :deploy do
desc "upload jar"
task :upload do
on release_roles :all do
upload! "target/standalone.jar",
"#{release_path}/standalone.jar"
upload! "target/run.sh", "#{release_path}/run.sh"
within release_path do
execute :chmod, '+x', 'run.sh'
end
end
end
endDevelopment
After checking out the repo, run bin/setup to install dependencies. Then,
run rake test to run the tests. You can also run bin/console for an
interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install.
Todo
- Better tests.
- Get SCM revision number from local repo.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/candland/capistrano-scm-none.
License
The gem is available as open source under the terms of the MIT License.