Deploy a middleman built site over rsync, ftp, stfp, or git (e.g. gh-pages on github).
Go to file
Ryan McGeary 0ea49a47ce Reorganized the readme for better readability
This should make it easier for people to quickly grok the possible
extension behaviors and get started.
2013-07-21 13:23:06 -04:00
features/support add a simple coverage report 2012-09-04 10:47:53 -07:00
lib some ftp/sftp related clean-ups 2013-07-16 22:25:06 -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 The default skeleton provided by middleman now omits versions. 2013-06-11 00:06:36 -04:00
middleman-deploy.gemspec update tagline and ensure required settings are provided for sftp 2013-07-16 21:43:00 -04:00
Rakefile required by travis-ci.org 2012-08-22 11:51:43 -07:00
README.md Reorganized the readme for better readability 2013-07-21 13:23:06 -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.user   = "tvaughan"
  deploy.host   = "www.example.com"
  deploy.path   = "/srv/www/site"
  # Optional Settings
  # 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.