Deploy a middleman built site over rsync, ftp, stfp, or git (e.g. gh-pages on github).
Find a file
2013-11-19 20:36:02 -03:00
features/support add a simple coverage report 2012-09-04 10:47:53 -07:00
lib Add new rsync flags option to error message. 2013-11-19 20:36:02 -03:00
.gitignore Pull-in new middleman extension defaults. 2013-09-21 12:32:19 -03:00
COPYING a.k.a. the mit expat license (same (more or less) as middleman) 2012-08-20 16:22:26 -07:00
Gemfile Added compass to avoid warning during test suite 2013-07-21 12:54:04 -04:00
middleman-deploy.gemspec Prefer README.md over the GitHub pages site. 2013-09-21 13:21:15 -03:00
Rakefile Oddly this is no longer required. 2013-09-21 12:29:10 -03:00
README.md updating readme 2013-11-18 17:59:58 -08:00

middleman-deploy Gem Version

Deploys a middleman built site via rsync, ftp, sftp, or git (e.g. gh-pages on github).

Installation

Add this to the Gemfile of the repository of your middleman site:

gem "middleman-deploy"

and run bundle install.

Usage

$ middleman build [--clean]
$ middleman deploy [--build-before]

To automatically run middleman build during middleman deploy, turn on the build_before option while activating the deploy extension:

activate :deploy do |deploy|
  # ...
  deploy.build_before = true # default: false
end

Possible Configurations

Middleman-deploy can deploy a site via rsync, ftp, sftp, or git.

Checkout the wiki for advanced set-up options.

rsync

Make sure that rsync is installed, and activate the extension by adding the following to config.rb:

activate :deploy do |deploy|
  deploy.method = :rsync
  deploy.host   = "www.example.com"
  deploy.path   = "/srv/www/site"
  # Optional Settings
  # deploy.user  = "tvaughan" # no default
  # deploy.port  = 5309 # ssh port, default: 22
  # deploy.clean = true # remove orphaned files on remote host, default: false
  # deploy.flags = "-rltgoDvzO --no-p --del -e" # add custom flags, default: -avze
end

Git (e.g. GitHub Pages)

Make sure that git is installed, and activate the extension by adding the following to config.rb:

activate :deploy do |deploy|
  deploy.method = :git
  # Optional Settings
  # deploy.remote = "custom-remote" # remote name or git url, default: origin
  # deploy.branch = "custom-branch" # default: gh-pages
end

If you use a remote name, you must first add it using git remote add. Run git remote -v to see a list of possible remote names. If you use a git url, it must end with '.git'.

Afterwards, the build directory will become a git repo. This branch will be created on the remote if it doesn't already exist.

FTP

Activate the extension by adding the following to config.rb:

activate :deploy do |deploy|
  deploy.method   = :ftp
  deploy.host     = "ftp.example.com"
  deploy.path     = "/srv/www/site"
  deploy.user     = "tvaughan"
  deploy.password = "secret"
end

SFTP

Activate the extension by adding the following to config.rb:

activate :deploy do |deploy|
  deploy.method   = :sftp
  deploy.host     = "sftp.example.com"
  deploy.path     = "/srv/www/site"
  # Optional Settings
  # deploy.user     = "tvaughan" # no default
  # deploy.password = "secret" # no default
end

Breaking Changes

  • v0.1.0
    • Removed the --clean command-line option. This option only applied to the rsync deploy method. The idea going forward is that command-line options must apply to all deploy methods. Options that are specific to a deploy method will only be available in config.rb.
    • Removed deploy from the after_build hook. This caused a deploy to be run each time build was called. This workflow never made sense. deploy was added to the after_build hook simply because it was available.

Thanks!

A BIG thanks to everyone who has contributed! Almost all pull requests are accepted.

Other

Inspired by the rsync task in Octopress.