Deploy a middleman built site over rsync, ftp, stfp, or git (e.g. gh-pages on github).
Find a file
Tom Vaughan a738143f3e bump
2013-08-08 19:46:10 -04:00
features/support add a simple coverage report 2012-09-04 10:47:53 -07:00
lib bump 2013-08-08 19:46:10 -04:00
.gitignore add a simple coverage report 2012-09-04 10:47:53 -07: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 Switch to github's .io domain for static sites. 2013-07-29 19:48:13 -04:00
Rakefile required by travis-ci.org 2012-08-22 11:51:43 -07:00
README.md Let user be optional in the rsync method. 2013-08-08 19:39:10 -04:00

middleman-deploy Build Status

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.

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
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.user     = "tvaughan"
  deploy.password = "secret"
  deploy.path     = "/srv/www/site"
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.user     = "tvaughan"
  deploy.password = "secret"
  deploy.path     = "/srv/www/site"
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.