middleman-deploy/README.md
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

125 lines
3.3 KiB
Markdown

# middleman-deploy [![Build Status](https://travis-ci.org/tvaughan/middleman-deploy.png?branch=master)](https://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).
## Installation
Add this to the Gemfile of the repository of your middleman site:
```ruby
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:
```ruby
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`:
```ruby
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`:
```ruby
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`:
```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
```
### SFTP
Activate the extension by adding the following to `config.rb`:
```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
```
## 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](https://github.com/tvaughan/middleman-deploy/graphs/contributors)!
Almost all pull requests are accepted.
## Other
Inspired by the rsync task in
[Octopress](https://github.com/imathis/octopress).