2013-09-21 18:37:36 +02:00
|
|
|
# middleman-deploy [![Gem Version](https://badge.fury.io/rb/middleman-deploy.png)](http://badge.fury.io/rb/middleman-deploy)
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Deploys a [middleman](http://middlemanapp.com/) built site via **rsync**,
|
|
|
|
**ftp**, **sftp**, or **git** (e.g. gh-pages on github).
|
2012-08-22 19:06:47 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
## Installation
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Add this to the Gemfile of the repository of your middleman site:
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```ruby
|
|
|
|
gem "middleman-deploy"
|
|
|
|
```
|
|
|
|
|
|
|
|
and run `bundle install`.
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
## Usage
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```
|
|
|
|
$ middleman build [--clean]
|
|
|
|
$ middleman deploy [--build-before]
|
|
|
|
```
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
To automatically run `middleman build` during `middleman deploy`, turn on the
|
|
|
|
`build_before` option while activating the deploy extension:
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```ruby
|
|
|
|
activate :deploy do |deploy|
|
|
|
|
# ...
|
|
|
|
deploy.build_before = true # default: false
|
|
|
|
end
|
|
|
|
```
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
## Possible Configurations
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Middleman-deploy can deploy a site via rsync, ftp, sftp, or git.
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-11-18 14:37:42 +01:00
|
|
|
Checkout [the wiki](https://github.com/tvaughan/middleman-deploy/wiki/_pages) for advanced set-up options.
|
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
### rsync
|
2012-10-04 20:22:16 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Make sure that `rsync` is installed, and activate the extension by adding the
|
|
|
|
following to `config.rb`:
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```ruby
|
|
|
|
activate :deploy do |deploy|
|
|
|
|
deploy.method = :rsync
|
|
|
|
deploy.host = "www.example.com"
|
|
|
|
deploy.path = "/srv/www/site"
|
|
|
|
# Optional Settings
|
2013-08-09 01:39:10 +02:00
|
|
|
# deploy.user = "tvaughan" # no default
|
2013-07-21 19:23:06 +02:00
|
|
|
# deploy.port = 5309 # ssh port, default: 22
|
|
|
|
# deploy.clean = true # remove orphaned files on remote host, default: false
|
2013-11-19 02:59:58 +01:00
|
|
|
# deploy.flags = "-rltgoDvzO --no-p --del -e" # add custom flags, default: -avze
|
2013-07-21 19:23:06 +02:00
|
|
|
end
|
|
|
|
```
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
### Git (e.g. GitHub Pages)
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Make sure that `git` is installed, and activate the extension by adding the
|
|
|
|
following to `config.rb`:
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```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
|
|
|
|
```
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
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'.
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Afterwards, the `build` directory will become a git repo. This branch will be
|
|
|
|
created on the remote if it doesn't already exist.
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
### FTP
|
2012-08-21 01:47:42 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Activate the extension by adding the following to `config.rb`:
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```ruby
|
|
|
|
activate :deploy do |deploy|
|
|
|
|
deploy.method = :ftp
|
|
|
|
deploy.host = "ftp.example.com"
|
2013-09-21 17:00:55 +02:00
|
|
|
deploy.path = "/srv/www/site"
|
2013-07-21 19:23:06 +02:00
|
|
|
deploy.user = "tvaughan"
|
|
|
|
deploy.password = "secret"
|
|
|
|
end
|
|
|
|
```
|
2012-08-21 01:42:11 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
### SFTP
|
2012-08-21 01:47:42 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
Activate the extension by adding the following to `config.rb`:
|
2013-05-06 02:49:05 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
```ruby
|
|
|
|
activate :deploy do |deploy|
|
|
|
|
deploy.method = :sftp
|
|
|
|
deploy.host = "sftp.example.com"
|
|
|
|
deploy.path = "/srv/www/site"
|
2013-09-21 17:00:55 +02:00
|
|
|
# Optional Settings
|
|
|
|
# deploy.user = "tvaughan" # no default
|
|
|
|
# deploy.password = "secret" # no default
|
2013-07-21 19:23:06 +02:00
|
|
|
end
|
|
|
|
```
|
2013-05-06 02:49:05 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
## Breaking Changes
|
2012-10-04 20:22:16 +02:00
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
* `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!
|
2013-07-17 04:54:58 +02:00
|
|
|
|
|
|
|
A **BIG** thanks to
|
|
|
|
[everyone who has contributed](https://github.com/tvaughan/middleman-deploy/graphs/contributors)!
|
|
|
|
Almost all pull requests are accepted.
|
|
|
|
|
2013-07-21 19:23:06 +02:00
|
|
|
## Other
|
2012-08-21 01:56:13 +02:00
|
|
|
|
2013-05-06 02:49:05 +02:00
|
|
|
Inspired by the rsync task in
|
|
|
|
[Octopress](https://github.com/imathis/octopress).
|