deployflow 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/LICENSE.txt +1 -1
- data/README.markdown +53 -33
- data/VERSION +1 -1
- data/deployflow.gemspec +2 -4
- metadata +2 -4
- data/test/helper.rb +0 -18
- data/test/test_deployflow.rb +0 -7
data/LICENSE.txt
CHANGED
data/README.markdown
CHANGED
@@ -1,73 +1,93 @@
|
|
1
1
|
deployflow
|
2
2
|
==========
|
3
3
|
|
4
|
-
deployflow lets you use git-flow
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
deployflow lets you use git-flow (or any git tag-based versioning strategy, really)
|
5
|
+
to release into a 'staging' branch and then promote specific tags into your 'master'
|
6
|
+
branch for deploying to production. It's for those of us who are persnickety about
|
7
|
+
keeping 'master' as a canonical repository of what's actually running in production
|
8
|
+
and doing all our mucking about elsewhere.
|
9
|
+
|
8
10
|
|
9
11
|
Installation
|
10
12
|
------------
|
11
13
|
|
12
|
-
1.
|
13
|
-
|
14
|
-
I'd recommend you use my custom fork of git-flow with deployflow. It adds
|
15
|
-
version number auto-incrementation and suppresses the need to add a message
|
16
|
-
to each tag you create. You can install it by:
|
14
|
+
1. git-flow
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
`make install` (or `sudo make install` if you don't own `/usr/local/bin`)
|
16
|
+
I'd recommend you use my custom fork of git-flow with deployflow. It adds
|
17
|
+
version number auto-incrementation and suppresses the need to add a message
|
18
|
+
to each tag you create. You can install it by:
|
22
19
|
|
23
|
-
|
24
|
-
|
20
|
+
`brew uninstall git-flow` (if you've previously installed git-flow via Homebrew)
|
21
|
+
`git clone --recursive git://github.com/nmeans/gitflow.git`
|
22
|
+
`cd gitflow`
|
23
|
+
`make install` (or `sudo make install` if you don't own `/usr/local/bin`)
|
25
24
|
|
26
|
-
|
25
|
+
If you'd prefer the original, visit [http://github.com/nvie/gitflow](http://github.com/nvie/gitflow)
|
26
|
+
for install information.
|
27
27
|
|
28
|
-
|
28
|
+
2. deployflow
|
29
29
|
|
30
|
-
|
30
|
+
`gem install deployflow`
|
31
|
+
This will also install capistrano and capistrano-ext if you don't already have them.
|
31
32
|
|
32
|
-
It's as simple as:
|
33
|
-
`gem install deployflow`
|
34
33
|
|
35
34
|
Repository Setup
|
36
35
|
----------------
|
37
36
|
|
38
|
-
1.
|
37
|
+
1. Add a couple of require branches to your repo
|
38
|
+
|
39
|
+
If you don't already have them, you'll need to add `develop` and `staging` branches. You should have a `master` branch by default. eg:
|
40
|
+
|
41
|
+
`git branch develop`
|
42
|
+
`git branch staging`
|
43
|
+
|
44
|
+
2. Run `git flow init` on your repo
|
45
|
+
|
46
|
+
You'll want to use `staging` as your branch for production releases (contradictory, I know, but trust me)
|
47
|
+
and `develop` for next release development. eg:
|
48
|
+
|
49
|
+
[~/Projects/deployflow-test]$ git flow init
|
39
50
|
|
40
|
-
|
51
|
+
Which branch should be used for bringing forth production releases?
|
52
|
+
- develop
|
53
|
+
- master
|
54
|
+
- staging
|
55
|
+
Branch name for production releases: [master] staging
|
41
56
|
|
42
|
-
|
57
|
+
Which branch should be used for integration of the "next release"?
|
58
|
+
- develop
|
59
|
+
- master
|
60
|
+
Branch name for "next release" development: [develop] develop
|
61
|
+
|
43
62
|
|
44
|
-
|
63
|
+
3. Add the following to the top of your config/deploy.rb
|
45
64
|
|
46
|
-
|
65
|
+
`require 'capistrano/ext/multistage'`
|
66
|
+
`require 'capistrano/deployflow'`
|
47
67
|
|
48
|
-
require 'capistrano/ext/multistage'
|
49
|
-
require 'capistrano/deployflow'
|
50
68
|
|
51
69
|
Usage
|
52
70
|
-----
|
53
71
|
|
54
|
-
Just use git-flow like normal.
|
72
|
+
Just use git-flow like normal. (What is 'normal'?
|
73
|
+
[Here's a good primer.](http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/))
|
74
|
+
Create a release you want to deploy with `git flow release` or `git flow hotfix`.
|
55
75
|
|
56
76
|
When you're ready to deploy your release to staging, no need to push first, just run `cap staging deploy` and
|
57
77
|
deployflow will automatically push to origin and deploy your most recent tag to staging.
|
58
78
|
|
59
79
|
After you've tested in staging, you're ready to promote your tag to master and roll it out to production. All
|
60
80
|
you have to do is `cap production deploy`, and deployflow will ask which tag you'd like to promote (suggesting
|
61
|
-
your most recent automatically), merge that tag over to your master branch, push to origin, and deploy
|
62
|
-
|
81
|
+
your most recent automatically), merge that tag over to your master branch, push to origin, and deploy that tag
|
82
|
+
to production.
|
63
83
|
|
64
84
|
Credits
|
65
85
|
-------
|
66
86
|
|
67
|
-
Heavily inspired by Josh Nichols' [capistrano-gitflow](https://github.com/technicalpickles/capistrano-gitflow)
|
87
|
+
Heavily inspired by and some code from Josh Nichols' [capistrano-gitflow](https://github.com/technicalpickles/capistrano-gitflow),
|
88
|
+
which was in turn inspired by Alan Pinstein's [git-deployment](https://github.com/apinstein/git-deployment).
|
68
89
|
|
69
90
|
Copyright
|
70
91
|
---------
|
71
92
|
|
72
|
-
Copyright (c) 2011 Nickolas Means. See LICENSE.txt for
|
73
|
-
further details.
|
93
|
+
Copyright (c) 2011 Nickolas Means / ActiveProspect, Inc. See LICENSE.txt for further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/deployflow.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{deployflow}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Nickolas Means"]
|
@@ -25,9 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
"Rakefile",
|
26
26
|
"VERSION",
|
27
27
|
"deployflow.gemspec",
|
28
|
-
"lib/capistrano/deployflow.rb"
|
29
|
-
"test/helper.rb",
|
30
|
-
"test/test_deployflow.rb"
|
28
|
+
"lib/capistrano/deployflow.rb"
|
31
29
|
]
|
32
30
|
s.homepage = %q{http://github.com/nmeans/deployflow}
|
33
31
|
s.licenses = ["MIT"]
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: deployflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Nickolas Means
|
@@ -98,8 +98,6 @@ files:
|
|
98
98
|
- VERSION
|
99
99
|
- deployflow.gemspec
|
100
100
|
- lib/capistrano/deployflow.rb
|
101
|
-
- test/helper.rb
|
102
|
-
- test/test_deployflow.rb
|
103
101
|
has_rdoc: true
|
104
102
|
homepage: http://github.com/nmeans/deployflow
|
105
103
|
licenses:
|
@@ -114,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
112
|
requirements:
|
115
113
|
- - ">="
|
116
114
|
- !ruby/object:Gem::Version
|
117
|
-
hash:
|
115
|
+
hash: 331035867074716980
|
118
116
|
segments:
|
119
117
|
- 0
|
120
118
|
version: "0"
|
data/test/helper.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
|
-
require 'test/unit'
|
11
|
-
require 'shoulda'
|
12
|
-
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
-
require 'deployflow'
|
16
|
-
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
end
|