middleman-deploy 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +17 -7
- data/lib/middleman-deploy/commands.rb +40 -6
- data/lib/middleman-deploy/extension.rb +6 -3
- data/lib/middleman-deploy/pkg-info.rb +1 -1
- data/middleman-deploy.gemspec +4 -4
- metadata +18 -6
data/README.md
CHANGED
@@ -6,7 +6,7 @@ Middleman Delpoy -- Deploy a [middleman](http://middlemanapp.com/) built site ov
|
|
6
6
|
|
7
7
|
## QUICK START
|
8
8
|
|
9
|
-
|
9
|
+
If deploying through `rsync`, be sure it is installed.
|
10
10
|
|
11
11
|
### Step 1
|
12
12
|
|
@@ -27,22 +27,21 @@ Then run:
|
|
27
27
|
|
28
28
|
bundle install
|
29
29
|
|
30
|
-
### Step
|
30
|
+
### Step 4a - Rsync setup
|
31
31
|
|
32
32
|
#### These settings are required.
|
33
33
|
|
34
34
|
Edit `config.rb`, and add:
|
35
35
|
|
36
36
|
activate :deploy do |deploy|
|
37
|
-
deploy.
|
38
|
-
deploy.
|
39
|
-
deploy.
|
37
|
+
deploy.method = :rsync
|
38
|
+
deploy.user = "tvaughan"
|
39
|
+
deploy.host = "www.example.com"
|
40
|
+
deploy.path = "/srv/www/site"
|
40
41
|
end
|
41
42
|
|
42
43
|
Adjust these values accordingly.
|
43
44
|
|
44
|
-
### Step 4.1
|
45
|
-
|
46
45
|
#### These settings are optional.
|
47
46
|
|
48
47
|
To use a particular SSH port, add:
|
@@ -57,6 +56,17 @@ To remove orphaned files or directories on the remote host, add:
|
|
57
56
|
|
58
57
|
Default is `false`.
|
59
58
|
|
59
|
+
### Step 4b - Github Pages setup
|
60
|
+
|
61
|
+
Edit `config.rb`, and add:
|
62
|
+
|
63
|
+
activate :deploy do |deploy|
|
64
|
+
deploy.method = :git
|
65
|
+
end
|
66
|
+
|
67
|
+
The git deploy method assumes your project is in a repository with
|
68
|
+
github set up as `origin` and a working `gh-pages` branch already in place.
|
69
|
+
|
60
70
|
### Step 5
|
61
71
|
|
62
72
|
middleman build
|
@@ -2,6 +2,8 @@ require "middleman-core/cli"
|
|
2
2
|
|
3
3
|
require "middleman-deploy/extension"
|
4
4
|
|
5
|
+
require 'git'
|
6
|
+
|
5
7
|
module Middleman
|
6
8
|
module Cli
|
7
9
|
|
@@ -18,18 +20,26 @@ module Middleman
|
|
18
20
|
true
|
19
21
|
end
|
20
22
|
|
21
|
-
desc "deploy", "Copy build directory to a remote host
|
23
|
+
desc "deploy", "Copy build directory to a remote host"
|
22
24
|
method_option "clean",
|
23
25
|
:type => :boolean,
|
24
26
|
:aliases => "-c",
|
25
27
|
:desc => "Remove orphaned files or directories on the remote host"
|
26
28
|
def deploy
|
27
|
-
|
29
|
+
send("deploy_#{self.middleman_options.method}")
|
30
|
+
end
|
31
|
+
|
32
|
+
protected
|
28
33
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
34
|
+
def middleman_options
|
35
|
+
::Middleman::Application.server.inst.options
|
36
|
+
end
|
37
|
+
|
38
|
+
def deploy_rsync
|
39
|
+
host = self.middleman_options.host
|
40
|
+
port = self.middleman_options.port
|
41
|
+
user = self.middleman_options.user
|
42
|
+
path = self.middleman_options.path
|
33
43
|
|
34
44
|
# These only exists when the config.rb sets them!
|
35
45
|
if (!host || !user || !path)
|
@@ -51,6 +61,30 @@ module Middleman
|
|
51
61
|
run command
|
52
62
|
end
|
53
63
|
|
64
|
+
def deploy_git
|
65
|
+
puts "## Deploying to Github Pages"
|
66
|
+
Dir.mktmpdir do |tmp|
|
67
|
+
# clone ./ with branch gh-pages to tmp
|
68
|
+
repo = Git.clone(ENV['MM_ROOT'], tmp)
|
69
|
+
repo.checkout('origin/gh-pages', :new_branch => 'gh-pages')
|
70
|
+
|
71
|
+
# copy ./build/* to tmp
|
72
|
+
FileUtils.cp_r(Dir.glob(File.join(ENV['MM_ROOT'], 'build', '*')), tmp)
|
73
|
+
|
74
|
+
# git add and commit in tmp
|
75
|
+
repo.add
|
76
|
+
repo.commit("Automated commit at #{Time.now.utc}")
|
77
|
+
|
78
|
+
# push from tmp to self
|
79
|
+
repo.push('origin', 'gh-pages')
|
80
|
+
|
81
|
+
# push to github
|
82
|
+
github_url = Git.open(ENV['MM_ROOT']).remote.url
|
83
|
+
repo.add_remote('github', github_url)
|
84
|
+
repo.push('github', 'gh-pages')
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
54
88
|
end
|
55
89
|
|
56
90
|
# Alias "d" to "deploy"
|
@@ -5,7 +5,7 @@ require "middleman-core"
|
|
5
5
|
module Middleman
|
6
6
|
module Deploy
|
7
7
|
|
8
|
-
class Options < Struct.new(:host, :port, :user, :path, :clean); end
|
8
|
+
class Options < Struct.new(:method, :host, :port, :user, :path, :clean); end
|
9
9
|
|
10
10
|
class << self
|
11
11
|
|
@@ -17,6 +17,7 @@ module Middleman
|
|
17
17
|
options = Options.new(options_hash)
|
18
18
|
yield options if block_given?
|
19
19
|
|
20
|
+
options.method ||= :rsync
|
20
21
|
options.port ||= 22
|
21
22
|
options.clean ||= false
|
22
23
|
|
@@ -25,8 +26,9 @@ module Middleman
|
|
25
26
|
app.send :include, Helpers
|
26
27
|
|
27
28
|
app.after_configuration do
|
28
|
-
if (
|
29
|
-
|
29
|
+
if (options.method == :rsync)
|
30
|
+
if (!options.host || !options.user || !options.path)
|
31
|
+
raise <<EOF
|
30
32
|
|
31
33
|
|
32
34
|
ERROR: middleman-deploy is not setup correctly. host, user, and path
|
@@ -39,6 +41,7 @@ activate :deploy do |deploy|
|
|
39
41
|
end
|
40
42
|
|
41
43
|
EOF
|
44
|
+
end
|
42
45
|
end
|
43
46
|
end
|
44
47
|
end
|
data/middleman-deploy.gemspec
CHANGED
@@ -6,11 +6,11 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = Middleman::Deploy::PACKAGE
|
7
7
|
s.version = Middleman::Deploy::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Tom Vaughan"]
|
9
|
+
s.authors = ["Tom Vaughan","Ben Cates"]
|
10
10
|
s.email = ["thomas.david.vaughan@gmail.com"]
|
11
11
|
s.homepage = "http://tvaughan.github.com/middleman-deploy/"
|
12
|
-
s.summary = %q{Deploy a middleman built site over rsync.}
|
13
|
-
s.description = %q{Deploy a middleman built site over rsync.}
|
12
|
+
s.summary = %q{Deploy a middleman built site over rsync or to github pages.}
|
13
|
+
s.description = %q{Deploy a middleman built site over rsync or to github pages.}
|
14
14
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
16
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -21,5 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_runtime_dependency("middleman-core", [">= 3.0.0"])
|
22
22
|
|
23
23
|
# Additional dependencies
|
24
|
-
|
24
|
+
s.add_runtime_dependency("git", "~> 1.2.0")
|
25
25
|
end
|
metadata
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Tom Vaughan
|
9
|
+
- Ben Cates
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-30 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: middleman-core
|
16
|
-
requirement: &
|
17
|
+
requirement: &19921080 !ruby/object:Gem::Requirement
|
17
18
|
none: false
|
18
19
|
requirements:
|
19
20
|
- - ! '>='
|
@@ -21,8 +22,19 @@ dependencies:
|
|
21
22
|
version: 3.0.0
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
|
25
|
+
version_requirements: *19921080
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: git
|
28
|
+
requirement: &19919900 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *19919900
|
37
|
+
description: Deploy a middleman built site over rsync or to github pages.
|
26
38
|
email:
|
27
39
|
- thomas.david.vaughan@gmail.com
|
28
40
|
executables: []
|
@@ -64,6 +76,6 @@ rubyforge_project:
|
|
64
76
|
rubygems_version: 1.8.11
|
65
77
|
signing_key:
|
66
78
|
specification_version: 3
|
67
|
-
summary: Deploy a middleman built site over rsync.
|
79
|
+
summary: Deploy a middleman built site over rsync or to github pages.
|
68
80
|
test_files: []
|
69
81
|
has_rdoc:
|