capistrano-semver-git-tags 0.0.2 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec22b1730befbe253a4d600f88055cdb90384b5e
4
- data.tar.gz: 6b7b146081e1f1b0d214667d547b228992713864
3
+ metadata.gz: 46395cedc303ac36ec8b07c5278d8c225fbca33d
4
+ data.tar.gz: 06af0ef0b6e68fc46a5f6502589ef05d1608a65c
5
5
  SHA512:
6
- metadata.gz: 949d60583f4d4feac4bfc8fcbc6f39c9cc49c3289f5647e17606bff9351cee6087743dd6ca569d300e19080efe917e4a7c6d2d20568d385fd1aa56e6447275c2
7
- data.tar.gz: 369ad417ec7db12ca64b45cb52fad984b8c717466b5ace247f1b2adb56f54df2d7e0302b6ae62ccc21425c95917520af372cdb0ee313ca20d9a0c4134fc5d018
6
+ metadata.gz: 686cc158a38677694573ab3dbb61b662735b1e10bb429d22c32bad50a2ecbc6377dcbe1cb356cadba9492a04cfe88da5f3282e8f2868230775e71b066fec9dca
7
+ data.tar.gz: ac6d18c4f1de4356f7d97ff38c09f2762a9bbb20c1620c8dcd97c776e427bb1969d604ce3f5436603b7d87d6533f79f7a496337be284285327570a24715d1eda
data/README.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  A Capistrano tasks for generating a semantic version Git tag at each deployment.
4
4
 
5
+ ### Prerequisite
6
+
7
+ - Capistrano 3
8
+ - Git 2.1+
9
+
5
10
  ### Usage
6
11
 
7
12
  capistrano-semver-git-tags is available on [rubygems.org](https://rubygems.org/gems/capistrano-semver-git-tags).
@@ -11,7 +16,7 @@ to the `development` group of your Gemfile with `require: false`:
11
16
  ```ruby
12
17
  # Gemfile
13
18
  group :development do
14
- gem 'capistrano-semver-git-tags', require: false
19
+ gem 'capistrano-semver-git-tags', '~> 0.1.0', require: false
15
20
  end
16
21
  ```
17
22
 
@@ -1,62 +1,61 @@
1
1
  require 'capistrano'
2
2
 
3
- Capistrano::Configuration.instance.load do
3
+ namespace :deploy do
4
4
 
5
- namespace :deploy do
6
- before :cleanup, :git_hooks do
7
- invoke 'git:tags:push_deploy_tag' unless fetch(:semantic_version).nil?
8
- end
5
+ before :set_current_revision, :semver_tag do
6
+ invoke 'git:tags:push_deploy_tag' unless fetch(:semantic_version).nil?
7
+ end
9
8
 
10
- task :major do
11
- set :semantic_version, :major
12
- invoke :deploy
13
- end
9
+ task :major do
10
+ set :semantic_version, :major
11
+ invoke :deploy
12
+ end
14
13
 
15
- task :minor do
16
- set :semantic_version, :minor
17
- invoke :deploy
18
- end
14
+ task :minor do
15
+ set :semantic_version, :minor
16
+ invoke :deploy
17
+ end
19
18
 
20
- task :patch do
21
- set :semantic_version, :patch
22
- invoke :deploy
23
- end
19
+ task :patch do
20
+ set :semantic_version, :patch
21
+ invoke :deploy
24
22
  end
25
23
 
26
- namespace :git do
24
+ end
25
+
26
+ namespace :git do
27
27
 
28
- namespace :tags do
28
+ namespace :tags do
29
29
 
30
- desc "Place release tag into Git and push it to server."
31
- task :push_deploy_tag do
32
- puts `git fetch --tags`
33
- last_commit_tag = `git describe --exact-match --tags HEAD`.chomp
34
- if last_commit_tag.empty?
35
- old_tag = `git tag --sort version:refname | tail -n1`.chomp
36
- if old_tag.nil? || old_tag.empty?
37
- puts 'Deploy tag fail. Mostly your git version is old'
38
- exit
39
- end
40
- major, minor, patch = old_tag.split('.')
41
- case fetch(:semantic_version)
42
- when :major
43
- major = major.to_i + 1
44
- minor = 0
45
- patch = 0
46
- when :minor
47
- minor = minor.to_i + 1
48
- patch = 0
49
- when :patch
50
- patch = patch.to_i + 1
51
- end
52
- new_tag = "#{major}.#{minor}.#{patch}"
53
- user = `git config --get user.name`.chomp
54
- email = `git config --get user.email`.chomp
55
- puts `git tag #{new_tag} -m "Deployed by #{user} <#{email}>"`
56
- puts `git push --tags origin`
30
+ desc "Place semantic version tag into Git and push it to server."
31
+ task :push_deploy_tag do
32
+ puts `git fetch --tags`
33
+ last_commit_tag = `git describe --exact-match --tags HEAD`.chomp
34
+ if last_commit_tag.empty?
35
+ old_tag = `git tag --sort version:refname | tail -n1`.chomp
36
+ if old_tag.nil? || old_tag.empty?
37
+ old_tag = '0.0.0'
57
38
  end
39
+ major, minor, patch = old_tag.split('.')
40
+ case fetch(:semantic_version)
41
+ when :major
42
+ major = major.to_i + 1
43
+ minor = 0
44
+ patch = 0
45
+ when :minor
46
+ minor = minor.to_i + 1
47
+ patch = 0
48
+ when :patch
49
+ patch = patch.to_i + 1
50
+ end
51
+ new_tag = "#{major}.#{minor}.#{patch}"
52
+ user = `git config --get user.name`.chomp
53
+ email = `git config --get user.email`.chomp
54
+ puts `git tag #{new_tag} -m "Deployed by #{user} <#{email}>"`
55
+ puts `git push --tags origin`
56
+ else
57
+ puts "The release you are trying to deploy already has semantic version (#{last_commit_tag})"
58
58
  end
59
-
60
59
  end
61
60
 
62
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-semver-git-tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdul Razzak Alkel