Merge branch 'master' of github.com:tvaughan/middleman-deploy

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
This commit is contained in:
Tom Vaughan 2013-07-24 00:03:00 -04:00
commit 966d90f7ba
2 changed files with 89 additions and 119 deletions

View file

@ -10,6 +10,7 @@ group :development do
end
group :test do
gem "compass"
gem "cucumber"
gem "fivemat"
gem "aruba"

177
README.md
View file

@ -1,155 +1,124 @@
Middleman Deploy - Deploy a [middleman](http://middlemanapp.com/)
built site over rsync, ftp, sftp, or git (e.g. gh-pages on github).
# middleman-deploy [![Build Status](https://travis-ci.org/tvaughan/middleman-deploy.png?branch=master)](https://travis-ci.org/tvaughan/middleman-deploy)
[![Build Status](https://secure.travis-ci.org/tvaughan/middleman-deploy.png)](http://travis-ci.org/tvaughan/middleman-deploy)
Deploys a [middleman](http://middlemanapp.com/) built site via **rsync**,
**ftp**, **sftp**, or **git** (e.g. gh-pages on github).
# QUICK START
## Installation
## Step 1
Add this to the Gemfile of the repository of your middleman site:
middleman init example-site
cd example-site
```ruby
gem "middleman-deploy"
```
## Step 2
and run `bundle install`.
Edit `Gemfile`, and add:
## Usage
gem "middleman-deploy", ">= 0.1.0"
```
$ middleman build [--clean]
$ middleman deploy [--build-before]
```
Then run:
To automatically run `middleman build` during `middleman deploy`, turn on the
`build_before` option while activating the deploy extension:
bundle install
```ruby
activate :deploy do |deploy|
# ...
deploy.build_before = true # default: false
end
```
## Step 3a - Rsync setup
## Possible Configurations
First be sure that `rsync` is installed.
Middleman-deploy can deploy a site via rsync, ftp, sftp, or git.
**These settings are required.**
### rsync
Edit `config.rb`, and add:
Make sure that `rsync` is installed, and activate the extension by adding the
following to `config.rb`:
activate :deploy do |deploy|
```ruby
activate :deploy do |deploy|
deploy.method = :rsync
deploy.user = "tvaughan"
deploy.host = "www.example.com"
deploy.path = "/srv/www/site"
end
# Optional Settings
# deploy.port = 5309 # ssh port, default: 22
# deploy.clean = true # remove orphaned files on remote host, default: false
end
```
Adjust these values accordingly.
### Git (e.g. GitHub Pages)
**These settings are optional.**
Make sure that `git` is installed, and activate the extension by adding the
following to `config.rb`:
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|
```ruby
activate :deploy do |deploy|
deploy.method = :git
end
# Optional Settings
# deploy.remote = "custom-remote" # remote name or git url, default: origin
# deploy.branch = "custom-branch" # default: gh-pages
end
```
By default this will deploy to the `gh-pages` branch on the `origin`
remote. The `build` directory will become a git repo.
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'.
**These settings are optional.**
Afterwards, the `build` directory will become a git repo. This branch will be
created on the remote if it doesn't already exist.
To use a particular remote, add:
### FTP
deploy.remote = "some-other-remote-name"
Activate the extension by adding the following to `config.rb`:
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|
```ruby
activate :deploy do |deploy|
deploy.method = :ftp
deploy.host = "ftp.example.com"
deploy.user = "tvaughan"
deploy.password = "secret"
deploy.path = "/srv/www/site"
end
end
```
Adjust these values accordingly.
### SFTP
## Step 3d - SFTP setup
Activate the extension by adding the following to `config.rb`:
**These settings are required.**
Edit `config.rb`, and add:
activate :deploy do |deploy|
```ruby
activate :deploy do |deploy|
deploy.method = :sftp
deploy.host = "sftp.example.com"
deploy.user = "tvaughan"
deploy.password = "secret"
deploy.path = "/srv/www/site"
end
end
```
Adjust these values accordingly.
## Breaking Changes
## Step 4
* `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.
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
## Thanks!
A **BIG** thanks to
[everyone who has contributed](https://github.com/tvaughan/middleman-deploy/graphs/contributors)!
Almost all pull requests are accepted.
## NOTES
## Other
Inspired by the rsync task in
[Octopress](https://github.com/imathis/octopress).