project_releaser 0.0.1 → 0.0.3
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +16 -0
- data/.ruby-version +1 -0
- data/README.md +13 -5
- data/lib/project_releaser.rb +1 -0
- data/lib/project_releaser/project/releaser.rb +3 -3
- data/lib/project_releaser/project/updater.rb +1 -1
- data/lib/project_releaser/version.rb +1 -1
- data/spec/project_releaser/project/releaser_spec.rb +4 -4
- data/spec/project_releaser/project/updater_spec.rb +2 -2
- data/vagrant/ansible/app.yml +1 -1
- data/vagrant/ansible/requirements.galaxy +0 -5
- metadata +5 -4
- data/vagrant/.ruby-version +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de9d1d21e70f467e26540f91e0f255b10685c402
|
4
|
+
data.tar.gz: 3f5a133c270756c2679d01de2fe40a91fdf6b383
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0f58ad856370e553a4c488744843e144eca8f85af1a6482f564242c7ca9b54b5e72accd47e700d5d284289d4c29117e20926de5be60c6b93fe96d1b96caceb1
|
7
|
+
data.tar.gz: 1f89f0b9273f884e65267fa37cfc3c93d57350211ddc37020aaf50820fa0a9a1b2e46d40ad0a65b37e4473122473290b892c7a4723e3fb2e8ba9def1de0776d0
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Documentation:
|
2
|
+
Enabled: false
|
3
|
+
Metrics/LineLength:
|
4
|
+
Max: 120
|
5
|
+
Metrics/MethodLength:
|
6
|
+
Max: 1000
|
7
|
+
Metrics/ClassLength:
|
8
|
+
Max: 99999
|
9
|
+
Style/SignalException:
|
10
|
+
AutoCorrect: false
|
11
|
+
Style/SpecialGlobalVars:
|
12
|
+
AutoCorrect: false
|
13
|
+
Lint/UnusedBlockArgument:
|
14
|
+
AutoCorrect: false
|
15
|
+
Lint/UnusedMethodArgument:
|
16
|
+
AutoCorrect: false
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.2.4
|
data/README.md
CHANGED
@@ -1,10 +1,17 @@
|
|
1
1
|
# Project Releaser
|
2
2
|
|
3
3
|
CLI command to make releases of your semantic versioned project a breeze.
|
4
|
-
|
4
|
+
|
5
|
+
Running `project release` in the root of your project:
|
6
|
+
* updates and `release` and `development` (if present) branches from all remotes
|
7
|
+
* merges `development` branch with `release` (again, if `development` is present)
|
8
|
+
* tags project with next `patch` version (which is the default one, `major` and `minor` are also available)
|
9
|
+
* pushes both branches and tags to all remotes
|
10
|
+
|
11
|
+
Please, refer to [Usage](#usage) section for more commands and examples.
|
5
12
|
|
6
13
|
Currently branches are not configurable:
|
7
|
-
* development is `
|
14
|
+
* development is `develop`
|
8
15
|
* release is `master`
|
9
16
|
|
10
17
|
## Installation
|
@@ -17,7 +24,7 @@ And then execute:
|
|
17
24
|
|
18
25
|
$ bundle install
|
19
26
|
|
20
|
-
## Usage
|
27
|
+
## <a name="usage"></a>Usage
|
21
28
|
```
|
22
29
|
project [command]
|
23
30
|
|
@@ -28,8 +35,8 @@ Available commands:
|
|
28
35
|
|
29
36
|
* `version` Current production version of the project
|
30
37
|
* `name` Project name
|
31
|
-
* `update` Updates master and
|
32
|
-
* `release` Merges
|
38
|
+
* `update` Updates master and develop branches from all reomtes
|
39
|
+
* `release` Merges develop into master and pushes master with new version
|
33
40
|
|
34
41
|
|
35
42
|
### Release Command
|
@@ -45,4 +52,5 @@ project release 7.10.5
|
|
45
52
|
## TODO
|
46
53
|
|
47
54
|
* Configurable branches
|
55
|
+
* Notifications on release (i.e. to Slack)
|
48
56
|
* Improve logs
|
data/lib/project_releaser.rb
CHANGED
@@ -24,8 +24,8 @@ module ProjectReleaser
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def merge_branches
|
27
|
-
logger.info "merging '
|
28
|
-
@git.merge :master, :
|
27
|
+
logger.info "merging 'develop' into 'master'"
|
28
|
+
@git.merge :master, :develop
|
29
29
|
end
|
30
30
|
|
31
31
|
def push_release(version)
|
@@ -36,7 +36,7 @@ module ProjectReleaser
|
|
36
36
|
def branches
|
37
37
|
@branches ||=begin
|
38
38
|
branches = [:master]
|
39
|
-
branches += [:
|
39
|
+
branches += [:develop] if @git.has_branch? :develop
|
40
40
|
branches
|
41
41
|
end
|
42
42
|
end
|
@@ -10,16 +10,16 @@ describe ProjectReleaser::Project::Releaser do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'releases project with provided version name' do
|
13
|
-
allow(yielded_repository).to receive(:has_branch?).with(:
|
14
|
-
expect(yielded_repository).to receive(:pull).with([:master, :
|
15
|
-
expect(yielded_repository).to receive(:merge).with(:master, :
|
13
|
+
allow(yielded_repository).to receive(:has_branch?).with(:develop).and_return(true)
|
14
|
+
expect(yielded_repository).to receive(:pull).with([:master, :develop]).ordered
|
15
|
+
expect(yielded_repository).to receive(:merge).with(:master, :develop).ordered
|
16
16
|
expect(yielded_repository).to receive(:push).with(:master, 'v2.3.5').ordered
|
17
17
|
|
18
18
|
subject.release 'v2.3.5'
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'doesnt pull and skips merging when there is no staging branch' do
|
22
|
-
allow(yielded_repository).to receive(:has_branch?).with(:
|
22
|
+
allow(yielded_repository).to receive(:has_branch?).with(:develop).and_return(false)
|
23
23
|
expect(yielded_repository).to receive(:pull).with([:master]).ordered
|
24
24
|
expect(yielded_repository).not_to receive(:merge)
|
25
25
|
expect(yielded_repository).to receive(:push).with(:master, 'v1.2.4').ordered
|
@@ -5,9 +5,9 @@ describe ProjectReleaser::Project::Updater do
|
|
5
5
|
let(:yielded_repository) { double 'repository' }
|
6
6
|
let(:subject) { ProjectReleaser::Project::Updater.new repository }
|
7
7
|
|
8
|
-
it 'updates master and
|
8
|
+
it 'updates master and develop branches from all remotes' do
|
9
9
|
allow(repository).to receive(:returning_to_current_branch).and_yield(yielded_repository)
|
10
|
-
expect(yielded_repository).to receive(:pull).with([:master, :
|
10
|
+
expect(yielded_repository).to receive(:pull).with([:master, :develop])
|
11
11
|
|
12
12
|
subject.update
|
13
13
|
end
|
data/vagrant/ansible/app.yml
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: project_releaser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kagux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -118,6 +118,8 @@ extra_rdoc_files: []
|
|
118
118
|
files:
|
119
119
|
- ".gitignore"
|
120
120
|
- ".rspec"
|
121
|
+
- ".rubocop.yml"
|
122
|
+
- ".ruby-version"
|
121
123
|
- Gemfile
|
122
124
|
- Gemfile.lock
|
123
125
|
- LICENSE.txt
|
@@ -145,7 +147,6 @@ files:
|
|
145
147
|
- spec/project_releaser_spec.rb
|
146
148
|
- spec/spec_helper.rb
|
147
149
|
- todo
|
148
|
-
- vagrant/.ruby-version
|
149
150
|
- vagrant/ansible/app.yml
|
150
151
|
- vagrant/ansible/inventory
|
151
152
|
- vagrant/ansible/requirements.galaxy
|
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
171
|
version: '0'
|
171
172
|
requirements: []
|
172
173
|
rubyforge_project:
|
173
|
-
rubygems_version: 2.4.
|
174
|
+
rubygems_version: 2.4.8
|
174
175
|
signing_key:
|
175
176
|
specification_version: 4
|
176
177
|
summary: Make project release painless
|
data/vagrant/.ruby-version
DELETED
File without changes
|