Deploy a middleman built site over rsync, ftp, stfp, or git (e.g. gh-pages on github).
Find a file
2013-07-21 12:54:04 -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 Added compass to avoid warning during test suite 2013-07-21 12:54:04 -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 sorry but i can't keep up with the number of contributors 2013-07-16 22:54:58 -04:00

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

Build Status

QUICK START

Step 1

middleman init example-site
cd example-site

Step 2

Edit Gemfile, and add:

gem "middleman-deploy", ">= 0.1.0"

Then run:

bundle install

Step 3a - Rsync setup

First be sure that rsync is installed.

These settings are required.

Edit config.rb, and add:

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

Adjust these values accordingly.

These settings are optional.

To use a particular SSH port, add:

  deploy.port = 5309

Default is 22.

To remove orphaned files or directories on the remote host, add:

  deploy.clean = true

Default is false.

Step 3b - Git setup

First be sure that git is installed.

These settings are required.

Edit config.rb, and add:

activate :deploy do |deploy|
  deploy.method = :git
end

By default this will deploy to the gh-pages branch on the origin remote. The build directory will become a git repo.

These settings are optional.

To use a particular remote, add:

  deploy.remote = "some-other-remote-name"

Default is origin. This can be a remote name or a git url.

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'.

To use a particular branch, add:

  deploy.branch = "some-other-branch-name"

Default is gh-pages. This branch will be created on the remote if it doesn't already exist.

Step 3c - FTP setup

These settings are required.

Edit config.rb, and add:

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

Adjust these values accordingly.

Step 3d - SFTP setup

These settings are required.

Edit config.rb, and add:

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

Adjust these values accordingly.

Step 4

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

To run middleman build before middleman deploy, add:

deploy.build_before = true

Default is false.

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.

NOTES

Inspired by the rsync task in Octopress.