verto 0.10.2 → 0.12.0
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/.github/workflows/ruby.yml +6 -3
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +54 -27
- data/README.md +52 -49
- data/Rakefile +1 -1
- data/VERTO_SYNTAX.md +350 -0
- data/Vertofile +1 -1
- data/bin/console +2 -6
- data/djin.yml +14 -1
- data/exe/verto +2 -0
- data/lib/verto/commands/tag_command.rb +36 -7
- data/lib/verto/dsl/built_in_hooks.rb +4 -0
- data/lib/verto/dsl/syntax.rb +10 -0
- data/lib/verto/dsl/update_changelog/filtered_by.rb +45 -0
- data/lib/verto/dsl/update_changelog/with_commit_messages.rb +30 -0
- data/lib/verto/dsl/update_changelog/with_merged_pull_requests.rb +19 -0
- data/lib/verto/dsl/update_changelog.rb +42 -17
- data/lib/verto/repositories/tag_repository.rb +4 -0
- data/lib/verto/utils/cli_helpers.rb +30 -8
- data/lib/verto/utils/templates/Vertofile +2 -1
- data/lib/verto/version.rb +1 -1
- data/lib/verto.rb +16 -10
- data/verto.gemspec +7 -3
- metadata +68 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e47505134ac4ade2dacefc6a709c60248906b0ca224845c2fa7c1942e295644
|
4
|
+
data.tar.gz: d3bfb3305978744b7d7be5f33c9b2ee58ddbf3c495518e49e8b8e8923937bd25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34f25e60110e798d56981f11a15fa49b06b2f1e80ecdcf0203465ac4ca273a53ed2d52af51f99fc717c2feb50af2cfadaa16ca551590d684b451fa526e40d9d0
|
7
|
+
data.tar.gz: b82da002e1d630babd7a692fcedb8a9dfa031379850f87cd27657348c41ebc961a8e30780b1f683619d2eebf6a25e961f3856aa075e356b38654c6c1059a53a0
|
data/.github/workflows/ruby.yml
CHANGED
@@ -4,7 +4,7 @@ on: [push]
|
|
4
4
|
|
5
5
|
jobs:
|
6
6
|
build:
|
7
|
-
runs-on: ubuntu-
|
7
|
+
runs-on: ubuntu-18.04
|
8
8
|
strategy:
|
9
9
|
matrix:
|
10
10
|
ruby: ['2.5', '2.6', '2.7', '3.0']
|
@@ -38,14 +38,17 @@ jobs:
|
|
38
38
|
./cc-test-reporter after-build -r ${{secrets.CC_TEST_REPORTER_ID}}
|
39
39
|
|
40
40
|
lint:
|
41
|
-
runs-on: ubuntu-
|
41
|
+
runs-on: ubuntu-18.04
|
42
42
|
name: Lint
|
43
43
|
steps:
|
44
44
|
- uses: actions/checkout@v2
|
45
45
|
- uses: actions/setup-ruby@v1
|
46
46
|
with:
|
47
47
|
ruby-version: '2.5'
|
48
|
-
-
|
48
|
+
- name: Install Gems
|
49
|
+
run: |
|
49
50
|
gem install bundler
|
50
51
|
bundle install --jobs 4 --retry 3
|
52
|
+
- name: Running Rubocop
|
53
|
+
run: |
|
51
54
|
bundle exec rubocop
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 0.12.0 - 28/10/2021
|
2
|
+
* [DOC] Add Verto Syntax Documentation
|
3
|
+
* [FEATURE] Add option to edit the CHANGELOG
|
4
|
+
* [FEATURE] Add update_changelog strategies
|
5
|
+
* [TECH] Configure pry and pry-byebug
|
6
|
+
|
7
|
+
## 0.11.0 - 16/04/2021
|
8
|
+
* [FEATURE] Adds fetch_before_tag_creation built-in hook
|
9
|
+
* [FEATURE] Verto Tag Init Command
|
10
|
+
|
1
11
|
## 0.10.2 - 23/02/2021
|
2
12
|
* [TECH] Adds Ruby 3 in Github Actions
|
3
13
|
* [FIX] Update Changelog Typo
|
data/Gemfile.lock
CHANGED
@@ -1,41 +1,54 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
verto (0.
|
5
|
-
dry-auto_inject (~> 0.7)
|
6
|
-
dry-configurable (~> 0.
|
7
|
-
dry-container (~> 0.7)
|
4
|
+
verto (0.12.0)
|
5
|
+
dry-auto_inject (~> 0.7.0)
|
6
|
+
dry-configurable (~> 0.9.0)
|
7
|
+
dry-container (~> 0.7.0)
|
8
|
+
dry-core (~> 0.6.0)
|
8
9
|
mustache (~> 1.1.1)
|
9
10
|
thor (~> 1.0.1)
|
11
|
+
tty-editor (~> 0.7.0)
|
12
|
+
tty-prompt (~> 0.23.1)
|
10
13
|
vseries (~> 0.2)
|
11
14
|
|
12
15
|
GEM
|
13
16
|
remote: https://rubygems.org/
|
14
17
|
specs:
|
15
|
-
ast (2.4.
|
16
|
-
byebug (11.1.
|
17
|
-
|
18
|
+
ast (2.4.2)
|
19
|
+
byebug (11.1.3)
|
20
|
+
coderay (1.1.3)
|
21
|
+
concurrent-ruby (1.1.9)
|
18
22
|
diff-lcs (1.4.4)
|
19
|
-
docile (1.
|
23
|
+
docile (1.4.0)
|
20
24
|
dry-auto_inject (0.7.0)
|
21
25
|
dry-container (>= 0.3.4)
|
22
|
-
dry-configurable (0.
|
26
|
+
dry-configurable (0.9.0)
|
23
27
|
concurrent-ruby (~> 1.0)
|
24
|
-
dry-core (~> 0.
|
28
|
+
dry-core (~> 0.4, >= 0.4.7)
|
25
29
|
dry-container (0.7.2)
|
26
30
|
concurrent-ruby (~> 1.0)
|
27
31
|
dry-configurable (~> 0.1, >= 0.1.3)
|
28
|
-
dry-core (0.
|
32
|
+
dry-core (0.6.0)
|
29
33
|
concurrent-ruby (~> 1.0)
|
30
|
-
json (2.
|
34
|
+
json (2.6.1)
|
35
|
+
method_source (1.0.0)
|
31
36
|
mustache (1.1.1)
|
32
|
-
parallel (1.
|
33
|
-
parser (
|
37
|
+
parallel (1.21.0)
|
38
|
+
parser (3.0.2.0)
|
34
39
|
ast (~> 2.4.1)
|
40
|
+
pastel (0.8.0)
|
41
|
+
tty-color (~> 0.5)
|
42
|
+
pry (0.13.1)
|
43
|
+
coderay (~> 1.1)
|
44
|
+
method_source (~> 1.0)
|
45
|
+
pry-byebug (3.9.0)
|
46
|
+
byebug (~> 11.0)
|
47
|
+
pry (~> 0.13.0)
|
35
48
|
rainbow (3.0.0)
|
36
|
-
rake (13.0.
|
37
|
-
regexp_parser (1.
|
38
|
-
rexml (3.2.
|
49
|
+
rake (13.0.6)
|
50
|
+
regexp_parser (2.1.1)
|
51
|
+
rexml (3.2.5)
|
39
52
|
rspec (3.10.0)
|
40
53
|
rspec-core (~> 3.10.0)
|
41
54
|
rspec-expectations (~> 3.10.0)
|
@@ -49,26 +62,39 @@ GEM
|
|
49
62
|
diff-lcs (>= 1.2.0, < 2.0)
|
50
63
|
rspec-support (~> 3.10.0)
|
51
64
|
rspec-support (3.10.2)
|
52
|
-
rubocop (
|
65
|
+
rubocop (1.22.2)
|
53
66
|
parallel (~> 1.10)
|
54
|
-
parser (>=
|
67
|
+
parser (>= 3.0.0.0)
|
55
68
|
rainbow (>= 2.2.2, < 4.0)
|
56
|
-
regexp_parser (>= 1.8)
|
69
|
+
regexp_parser (>= 1.8, < 3.0)
|
57
70
|
rexml
|
58
|
-
rubocop-ast (>=
|
71
|
+
rubocop-ast (>= 1.12.0, < 2.0)
|
59
72
|
ruby-progressbar (~> 1.7)
|
60
|
-
unicode-display_width (>= 1.4.0, <
|
61
|
-
rubocop-ast (
|
62
|
-
parser (>=
|
63
|
-
ruby-progressbar (1.
|
73
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
74
|
+
rubocop-ast (1.12.0)
|
75
|
+
parser (>= 3.0.1.1)
|
76
|
+
ruby-progressbar (1.11.0)
|
64
77
|
simplecov (0.17.1)
|
65
78
|
docile (~> 1.1)
|
66
79
|
json (>= 1.8, < 3)
|
67
80
|
simplecov-html (~> 0.10.0)
|
68
81
|
simplecov-html (0.10.2)
|
69
82
|
thor (1.0.1)
|
70
|
-
|
83
|
+
tty-color (0.6.0)
|
84
|
+
tty-cursor (0.7.1)
|
85
|
+
tty-editor (0.7.0)
|
86
|
+
tty-prompt (~> 0.22)
|
87
|
+
tty-prompt (0.23.1)
|
88
|
+
pastel (~> 0.8)
|
89
|
+
tty-reader (~> 0.8)
|
90
|
+
tty-reader (0.9.0)
|
91
|
+
tty-cursor (~> 0.7)
|
92
|
+
tty-screen (~> 0.8)
|
93
|
+
wisper (~> 2.0)
|
94
|
+
tty-screen (0.8.1)
|
95
|
+
unicode-display_width (2.1.0)
|
71
96
|
vseries (0.2.0)
|
97
|
+
wisper (2.0.1)
|
72
98
|
|
73
99
|
PLATFORMS
|
74
100
|
ruby
|
@@ -76,6 +102,7 @@ PLATFORMS
|
|
76
102
|
DEPENDENCIES
|
77
103
|
bundler (~> 2.0)
|
78
104
|
byebug
|
105
|
+
pry-byebug (~> 3.9.0)
|
79
106
|
rake (~> 13.0)
|
80
107
|
rspec (~> 3.0)
|
81
108
|
rubocop
|
@@ -83,4 +110,4 @@ DEPENDENCIES
|
|
83
110
|
verto!
|
84
111
|
|
85
112
|
BUNDLED WITH
|
86
|
-
2.2.
|
113
|
+
2.2.24
|
data/README.md
CHANGED
@@ -4,58 +4,14 @@
|
|
4
4
|
[](https://codeclimate.com/github/catks/verto/test_coverage)\
|
5
5
|
Verto is a CLI to generate git tags (following the [Semantic Versioning](https://semver.org/) system)
|
6
6
|
|
7
|
-
## Installation
|
8
|
-
|
9
|
-
|
10
|
-
### Ruby Gem
|
11
|
-
Verto is distributed as a ruby gem, to install run:
|
12
|
-
|
13
|
-
```shell
|
14
|
-
$ gem install verto
|
15
|
-
```
|
16
|
-
|
17
|
-
### With Rbenv
|
18
|
-
|
19
|
-
If you use Rbenv you can install verto only once and create a alias in your .basrc, .zshrc, etc:
|
20
|
-
|
21
|
-
#### ZSH
|
22
|
-
$ RBENV_VERSION=$(rbenv global) gem install verto && echo "alias verto='RBENV_VERSION=$(rbenv global) verto'" >> ~/.zshrc
|
23
|
-
|
24
|
-
#### Bash
|
25
|
-
$ RBENV_VERSION=$(rbenv global) gem install verto && echo "alias verto='RBENV_VERSION=$(rbenv global) verto'" >> ~/.bashrc
|
26
|
-
|
27
|
-
|
28
|
-
### Docker Image
|
29
|
-
|
30
|
-
You don't need to install verto in your machine, you can run verto via the docker image
|
31
|
-
|
32
|
-
To use verto in the same way that you use any other cli, you can set an alias in your `.bashrc`, `.zshrc`, etc:
|
33
|
-
|
34
|
-
```shell
|
35
|
-
alias verto='docker run --rm -v $(pwd):/usr/src/project -it catks/verto:0.10.2'
|
36
|
-
```
|
37
|
-
|
38
|
-
If you want you can share your git configuration and known_hosts with:
|
39
|
-
|
40
|
-
```shell
|
41
|
-
alias verto='docker run --rm -v ~/.gitconfig:/etc/gitconfig -v $(pwd):/usr/src/project -v $HOME/.ssh/known_hosts:/root/.ssh/known_hosts -it catks/verto:0.10.2'
|
42
|
-
|
43
|
-
```
|
44
|
-
|
45
|
-
You can also use your ssh keys, know_hosts and git config with verto container (for git push):
|
46
|
-
|
47
|
-
```shell
|
48
|
-
alias verto='docker run --rm -v ~/.gitconfig:/etc/gitconfig -v $(pwd):/usr/src/project -v $HOME/.ssh/known_hosts:/root/.ssh/known_hosts -v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa -e SSH_PRIVATE_KEY=/root/.ssh/id_rsa -it catks/verto:0.10.2'
|
49
|
-
|
50
|
-
```
|
51
|
-
|
52
|
-
Now you can run any verto command! :)
|
53
7
|
|
54
8
|
## Usage
|
55
9
|
|
56
10
|
You can run verto right out of the box without any configuration:
|
57
11
|
|
58
12
|
```shell
|
13
|
+
verto tag init # Creates the initial tag (0.1.0) if the repository doesn't have tags
|
14
|
+
|
59
15
|
verto tag up --patch # Creates a new tag increasing the patch number
|
60
16
|
verto tag up --minor # Creates a new tag increasing the minor number
|
61
17
|
verto tag up --major # Creates a new tag increasing the major number
|
@@ -85,12 +41,13 @@ You can create a new Vertofile with `verto init` or following the next example:
|
|
85
41
|
```ruby
|
86
42
|
# Vertofile
|
87
43
|
|
88
|
-
verto_version '0.
|
44
|
+
verto_version '0.12.0'
|
89
45
|
|
90
46
|
config {
|
91
47
|
# version.prefix = 'v' # Adds a version_prefix
|
92
|
-
# pre_release.default_identifier = 'alpha'
|
48
|
+
# pre_release.default_identifier = 'alpha' # Defaults to 'rc'
|
93
49
|
git.pull_before_tag_creation = true # Pull Changes before tag creation
|
50
|
+
git.fetch_before_tag_creation = true # Fetch Branches and Tags before tag creation
|
94
51
|
git.push_after_tag_creation = true # Push changes after tag creation
|
95
52
|
|
96
53
|
## CHANGELOG FORMAT
|
@@ -160,7 +117,53 @@ context(!branch('master', 'staging')) {
|
|
160
117
|
|
161
118
|
#### Verto Syntax
|
162
119
|
|
163
|
-
|
120
|
+
[See more details here](VERTO_SYNTAX.md)
|
121
|
+
|
122
|
+
## Installation
|
123
|
+
|
124
|
+
### Ruby Gem
|
125
|
+
Verto is distributed as a ruby gem, to install run:
|
126
|
+
|
127
|
+
```shell
|
128
|
+
$ gem install verto
|
129
|
+
```
|
130
|
+
|
131
|
+
### With Rbenv
|
132
|
+
|
133
|
+
If you use Rbenv you can install verto only once and create a alias in your .basrc, .zshrc, etc:
|
134
|
+
|
135
|
+
#### ZSH
|
136
|
+
$ RBENV_VERSION=$(rbenv global) gem install verto && echo "alias verto='RBENV_VERSION=$(rbenv global) verto'" >> ~/.zshrc
|
137
|
+
|
138
|
+
#### Bash
|
139
|
+
$ RBENV_VERSION=$(rbenv global) gem install verto && echo "alias verto='RBENV_VERSION=$(rbenv global) verto'" >> ~/.bashrc
|
140
|
+
|
141
|
+
|
142
|
+
### Docker Image
|
143
|
+
|
144
|
+
You don't need to install verto in your machine, you can run verto via the docker image
|
145
|
+
|
146
|
+
To use verto in the same way that you use any other cli, you can set an alias in your `.bashrc`, `.zshrc`, etc:
|
147
|
+
|
148
|
+
```shell
|
149
|
+
alias verto='docker run --rm -v $(pwd):/usr/src/project -it catks/verto:0.12.0'
|
150
|
+
```
|
151
|
+
|
152
|
+
If you want you can share your git configuration and known_hosts with:
|
153
|
+
|
154
|
+
```shell
|
155
|
+
alias verto='docker run --rm -v ~/.gitconfig:/etc/gitconfig -v $(pwd):/usr/src/project -v $HOME/.ssh/known_hosts:/root/.ssh/known_hosts -it catks/verto:0.12.0'
|
156
|
+
|
157
|
+
```
|
158
|
+
|
159
|
+
You can also use your ssh keys, know_hosts and git config with verto container (for git push):
|
160
|
+
|
161
|
+
```shell
|
162
|
+
alias verto='docker run --rm -v ~/.gitconfig:/etc/gitconfig -v $(pwd):/usr/src/project -v $HOME/.ssh/known_hosts:/root/.ssh/known_hosts -v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa -e SSH_PRIVATE_KEY=/root/.ssh/id_rsa -it catks/verto:0.12.0'
|
163
|
+
|
164
|
+
```
|
165
|
+
|
166
|
+
Now you can run any verto command! :)
|
164
167
|
|
165
168
|
## TODO
|
166
169
|
|
data/Rakefile
CHANGED
data/VERTO_SYNTAX.md
ADDED
@@ -0,0 +1,350 @@
|
|
1
|
+
# Verto Syntax
|
2
|
+
|
3
|
+
## verto_version
|
4
|
+
|
5
|
+
Set the minimal verto version compatible with Vertofile
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
# Vertofile
|
9
|
+
verto_version '0.11.0'
|
10
|
+
```
|
11
|
+
|
12
|
+
## config
|
13
|
+
|
14
|
+
Allows you to customize the behavior for verto commands.
|
15
|
+
|
16
|
+
Example:
|
17
|
+
```ruby
|
18
|
+
# Vertofile
|
19
|
+
config {
|
20
|
+
version.prefix = 'v' # Adds a version_prefix
|
21
|
+
pre_release.default_identifier = 'alpha' # Defaults to 'rc'
|
22
|
+
git.pull_before_tag_creation = true # Pull Changes before tag creation
|
23
|
+
git.fetch_before_tag_creation = true # Fetch Branches and Tags before tag creation
|
24
|
+
git.push_after_tag_creation = true # Push changes after tag creation
|
25
|
+
|
26
|
+
## CHANGELOG FORMAT
|
27
|
+
## Verto uses Mustache template rendering to render changelog updates, the default value is:
|
28
|
+
##
|
29
|
+
## ## {{new_version}} - #{Time.now.strftime('%d/%m/%Y')}
|
30
|
+
## {{#version_changes}}
|
31
|
+
## * {{.}}
|
32
|
+
## {{/version_changes}}
|
33
|
+
##
|
34
|
+
## A custom format can be specified, eg:
|
35
|
+
changelog.format = <<~CHANGELOG
|
36
|
+
## {{new_version}}
|
37
|
+
{{#version_changes}}
|
38
|
+
* {{.}}
|
39
|
+
{{/version_changes}}
|
40
|
+
CHANGELOG
|
41
|
+
}
|
42
|
+
|
43
|
+
```
|
44
|
+
|
45
|
+
## context
|
46
|
+
|
47
|
+
In the context block you can create a scope that will only run if the statment it's true.
|
48
|
+
|
49
|
+
Example:
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
# Vertofile
|
53
|
+
|
54
|
+
# Only runs on master branch
|
55
|
+
context(branch('master')) {
|
56
|
+
...
|
57
|
+
}
|
58
|
+
|
59
|
+
# Only runs on staging branch
|
60
|
+
context(branch('staging')) {
|
61
|
+
...
|
62
|
+
}
|
63
|
+
# Only runs if the branch is not master or staging
|
64
|
+
context(!branch('master', 'staging')) {
|
65
|
+
...
|
66
|
+
}
|
67
|
+
|
68
|
+
# You can also run with a custom conditional (With ruby code)
|
69
|
+
context(current_branch.match?(/feature\/.+/)) {
|
70
|
+
...
|
71
|
+
}
|
72
|
+
```
|
73
|
+
|
74
|
+
## before
|
75
|
+
|
76
|
+
Runs before executing a verto command
|
77
|
+
|
78
|
+
```ruby
|
79
|
+
# Vertofile
|
80
|
+
|
81
|
+
before {
|
82
|
+
puts "Before a command"
|
83
|
+
}
|
84
|
+
context(branch('master')) {
|
85
|
+
before {
|
86
|
+
puts "Before a command in master branch"
|
87
|
+
}
|
88
|
+
}
|
89
|
+
```
|
90
|
+
## after
|
91
|
+
Runs after executing a verto command
|
92
|
+
|
93
|
+
Example:
|
94
|
+
```ruby
|
95
|
+
# Vertofile
|
96
|
+
|
97
|
+
after {
|
98
|
+
puts "After a command"
|
99
|
+
}
|
100
|
+
context(branch('master')) {
|
101
|
+
before {
|
102
|
+
puts "After a command in master branch"
|
103
|
+
}
|
104
|
+
}
|
105
|
+
```
|
106
|
+
|
107
|
+
## before_command_tag_up
|
108
|
+
|
109
|
+
Almost the same as before but run before the tag creation, the new tag can be accessible with as `new_version`
|
110
|
+
|
111
|
+
Example:
|
112
|
+
```ruby
|
113
|
+
# Vertofile
|
114
|
+
|
115
|
+
before_tag_creation {
|
116
|
+
puts "New version is #{new_version}"
|
117
|
+
...
|
118
|
+
}
|
119
|
+
```
|
120
|
+
|
121
|
+
## after_command_tag_up
|
122
|
+
|
123
|
+
The same as before_command_tag_up but run after the tag creation, the new tag can be accessible with as `new_version`
|
124
|
+
|
125
|
+
Example:
|
126
|
+
```ruby
|
127
|
+
# Vertofile
|
128
|
+
|
129
|
+
after_tag_creation {
|
130
|
+
puts "New version is #{new_version}"
|
131
|
+
...
|
132
|
+
}
|
133
|
+
```
|
134
|
+
|
135
|
+
## command_options
|
136
|
+
|
137
|
+
Allows you to set a specific option without the need to pass it explicity in the verto command (See `verto tag up --help` to see the options).
|
138
|
+
|
139
|
+
Example:
|
140
|
+
```ruby
|
141
|
+
# Vertofile
|
142
|
+
|
143
|
+
context(branch('master')) {
|
144
|
+
before_command_tag_up {
|
145
|
+
command_options.add(filter: 'release_only')
|
146
|
+
}
|
147
|
+
...
|
148
|
+
}
|
149
|
+
|
150
|
+
context(branch('staging')) {
|
151
|
+
before_command_tag_up {
|
152
|
+
command_options.add(pre_release: 'rc')
|
153
|
+
}
|
154
|
+
...
|
155
|
+
}
|
156
|
+
```
|
157
|
+
|
158
|
+
## update_changelog
|
159
|
+
|
160
|
+
Start a flow to update the changelog (must be in `before_command_tag_up` or `after_command_tag_up)`
|
161
|
+
|
162
|
+
Options include:
|
163
|
+
|
164
|
+
* `:merged_pull_requests_with_bracketed_labels`: Uses all PR merged commits after the last tag if they have the [***] pattern
|
165
|
+
* `:commits_with_bracketed_labels` : Uses all commits after the last tag if they have the [***] pattern (Exclude merge commits)
|
166
|
+
* `:merged_pull_requests_messages` : Uses all merged commit after the last tag
|
167
|
+
* `:commit_messages`: Uses all commits after the last tag (Exclude merge commits)
|
168
|
+
|
169
|
+
Example:
|
170
|
+
```ruby
|
171
|
+
# Vertofile
|
172
|
+
...
|
173
|
+
context(branch('master')) {
|
174
|
+
before_tag_creation {
|
175
|
+
update_changelog(with: :merged_pull_requests_with_bracketed_labels,
|
176
|
+
confirmation: true, # Asks for confirmation (you can also edit the generated CHANGELOG)
|
177
|
+
filename: 'CHANGELOG.md')
|
178
|
+
git('add CHANGELOG.md')
|
179
|
+
|
180
|
+
git('commit -m "Updates CHANGELOG"')
|
181
|
+
}
|
182
|
+
}
|
183
|
+
...
|
184
|
+
```
|
185
|
+
|
186
|
+
## file
|
187
|
+
|
188
|
+
Allows you to do some operations in a specific file.
|
189
|
+
|
190
|
+
Example:
|
191
|
+
```ruby
|
192
|
+
# Vertofile
|
193
|
+
...
|
194
|
+
context(branch('master')) {
|
195
|
+
before_tag_creation {
|
196
|
+
file('package.json').replace(/"(\d+)\.(\d+)\.(\d+)(-?.*)"/, %Q{"#{new_version}"})
|
197
|
+
git!('add package.json')
|
198
|
+
|
199
|
+
file('README.md').replace_all(latest_version.to_s, new_version.to_s)
|
200
|
+
git!('add README.md')
|
201
|
+
git!('commit -m "Bumps Version"')
|
202
|
+
|
203
|
+
file('versions_asc').append("#{new_version} - #{Time.now}")
|
204
|
+
file('versions_desc').prepend("#{new_version} - #{Time.now}")
|
205
|
+
}
|
206
|
+
}
|
207
|
+
...
|
208
|
+
```
|
209
|
+
|
210
|
+
## env
|
211
|
+
|
212
|
+
Allows you to access a specifc environment variable
|
213
|
+
|
214
|
+
Example:
|
215
|
+
```ruby
|
216
|
+
# Vertofile
|
217
|
+
...
|
218
|
+
context(branch('staging')) {
|
219
|
+
before_tag_creation {
|
220
|
+
file('ci.log').append(env('CI_WORKER'))
|
221
|
+
...
|
222
|
+
}
|
223
|
+
}
|
224
|
+
...
|
225
|
+
```
|
226
|
+
|
227
|
+
## confirm
|
228
|
+
|
229
|
+
Ask for confirmation before executing anything
|
230
|
+
|
231
|
+
Example:
|
232
|
+
```ruby
|
233
|
+
# Vertofile
|
234
|
+
...
|
235
|
+
context(branch('master')) {
|
236
|
+
before_tag_creation {
|
237
|
+
confirm('Are you sure?')
|
238
|
+
...
|
239
|
+
}
|
240
|
+
}
|
241
|
+
...
|
242
|
+
```
|
243
|
+
|
244
|
+
## error
|
245
|
+
|
246
|
+
Sends an error to **stderr**
|
247
|
+
|
248
|
+
Example:
|
249
|
+
```ruby
|
250
|
+
# Vertofile
|
251
|
+
...
|
252
|
+
context(!branch('master')) {
|
253
|
+
error('Not at master')
|
254
|
+
}
|
255
|
+
...
|
256
|
+
```
|
257
|
+
|
258
|
+
## error!
|
259
|
+
|
260
|
+
The same as error but exits verto (without creating a tag)
|
261
|
+
|
262
|
+
Example:
|
263
|
+
```ruby
|
264
|
+
# Vertofile
|
265
|
+
...
|
266
|
+
context(!branch('master')) {
|
267
|
+
error!('Not at master')
|
268
|
+
}
|
269
|
+
...
|
270
|
+
```
|
271
|
+
|
272
|
+
## sh
|
273
|
+
|
274
|
+
Runs any shell command.
|
275
|
+
|
276
|
+
Example:
|
277
|
+
```ruby
|
278
|
+
# Vertofile
|
279
|
+
...
|
280
|
+
context(branch('master')) {
|
281
|
+
before_tag_creation {
|
282
|
+
...
|
283
|
+
sh('bundle install')
|
284
|
+
sh('rake install')
|
285
|
+
git!('add Gemfile.lock')
|
286
|
+
|
287
|
+
git!('commit -m "Bumps Version"')
|
288
|
+
}
|
289
|
+
}
|
290
|
+
...
|
291
|
+
```
|
292
|
+
|
293
|
+
## sh!
|
294
|
+
|
295
|
+
The same as sh but exits verto in case of errors
|
296
|
+
|
297
|
+
Example:
|
298
|
+
```ruby
|
299
|
+
# Vertofile
|
300
|
+
...
|
301
|
+
context(branch('master')) {
|
302
|
+
before_tag_creation {
|
303
|
+
...
|
304
|
+
sh!('bundle install')
|
305
|
+
sh!('rake install')
|
306
|
+
git!('add Gemfile.lock')
|
307
|
+
|
308
|
+
git!('commit -m "Bumps Version"')
|
309
|
+
}
|
310
|
+
}
|
311
|
+
...
|
312
|
+
```
|
313
|
+
|
314
|
+
## git
|
315
|
+
|
316
|
+
Runs git commands in verto
|
317
|
+
|
318
|
+
Example:
|
319
|
+
```ruby
|
320
|
+
# Vertofile
|
321
|
+
...
|
322
|
+
context(branch('master')) {
|
323
|
+
before_tag_creation {
|
324
|
+
...
|
325
|
+
update_changelog
|
326
|
+
git('add CHANGELOG.md')
|
327
|
+
git('commit -m "Bumps Version"')
|
328
|
+
}
|
329
|
+
}
|
330
|
+
...
|
331
|
+
```
|
332
|
+
|
333
|
+
## git!
|
334
|
+
|
335
|
+
The same as **git** but exits verto in case of errors
|
336
|
+
|
337
|
+
Example:
|
338
|
+
```ruby
|
339
|
+
# Vertofile
|
340
|
+
...
|
341
|
+
context(branch('master')) {
|
342
|
+
before_tag_creation {
|
343
|
+
...
|
344
|
+
update_changelog
|
345
|
+
git!('add CHANGELOG.md')
|
346
|
+
git!('commit -m "Bumps Version"')
|
347
|
+
}
|
348
|
+
}
|
349
|
+
...
|
350
|
+
```
|
data/Vertofile
CHANGED
data/bin/console
CHANGED
@@ -7,9 +7,5 @@ require 'verto'
|
|
7
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
8
8
|
# with your gem easier. You can also use a different console, if you like.
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
# Pry.start
|
13
|
-
|
14
|
-
require 'irb'
|
15
|
-
IRB.start(__FILE__)
|
10
|
+
require 'pry'
|
11
|
+
Pry.start
|