revision 1.2.4 → 1.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/revision/cli.rb +11 -1
- data/lib/revision/errors.rb +5 -0
- data/lib/revision/releasable.rb +35 -12
- data/lib/revision/version.rb +7 -1
- data/revision.gemspec +1 -1
- metadata +5 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3137913d1f2815663cd109b664abe5fdfa605a180800a41e11fc33dc2997a0c6
|
4
|
+
data.tar.gz: 512af6c0a368097279366b31be82163c5b645b35a54d6827e17630ba7556eb04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9300b42431ed4d899cd7139d9e92b1df7f31b028838f463abf5558e4396154d249474a5282351ca31d0417cb126b48bafaa3049992e457a59ec85e2edc616d10
|
7
|
+
data.tar.gz: '0893bc8118beb685ef3284403482575c1d1c2c73a85968cdc60234959546676409aca7456fef2242d4ac7114cfc05dabe74805c59f0074b7864558d990a51017'
|
data/lib/revision/cli.rb
CHANGED
@@ -67,7 +67,7 @@ module Revision
|
|
67
67
|
selected.each { |r| r.build(options[:skip])}
|
68
68
|
end
|
69
69
|
|
70
|
-
desc 'archive', 'Archive
|
70
|
+
desc 'archive', 'Archive releasable(s)'
|
71
71
|
def archive
|
72
72
|
selected = options[:id].nil? ? @releasables.values : [@releasables[options[:id]]]
|
73
73
|
puts "Archiving #{selected.length} releasables..."
|
@@ -76,6 +76,16 @@ module Revision
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
desc 'deploy', 'Deploy releasable(s)'
|
80
|
+
method_option :to, :aliases => "-t", :type => :string, :default => '', :desc => "Path to deploy to"
|
81
|
+
def deploy
|
82
|
+
selected = options[:id].nil? ? @releasables.values : [@releasables[options[:id]]]
|
83
|
+
puts "Deploying #{selected.length} releasables..."
|
84
|
+
selected.each do |r|
|
85
|
+
r.deploy(options[:to])
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
79
89
|
desc 'package', 'Build and archive releasables'
|
80
90
|
def package
|
81
91
|
selected = options[:id].nil? ? @releasables.values : [@releasables[options[:id]]]
|
data/lib/revision/errors.rb
CHANGED
@@ -6,5 +6,10 @@ module Revision
|
|
6
6
|
super("No definition file (#{Releasable::CONFIG_FILE_NAME}) found at root #{root}")
|
7
7
|
end
|
8
8
|
end
|
9
|
+
class NotSpecified < Base
|
10
|
+
def initialize(key)
|
11
|
+
super("Key (#{key}) must be specifed in yaml OR passed as argument")
|
12
|
+
end
|
13
|
+
end
|
9
14
|
end
|
10
15
|
end
|
data/lib/revision/releasable.rb
CHANGED
@@ -64,6 +64,7 @@ module Revision
|
|
64
64
|
@build_def = config[:build] ? config[:build] : { environment: { variables: {}}, steps: config[:build_steps]}
|
65
65
|
@artefacts = config[:artefacts] || []
|
66
66
|
@artefacts.each { |a| a[:dest] ||= a[:src] } unless @artefacts.nil? || @artefacts.empty?
|
67
|
+
@config = config
|
67
68
|
end
|
68
69
|
|
69
70
|
def to_s
|
@@ -162,29 +163,51 @@ module Revision
|
|
162
163
|
"#{@id}_revision_history_v#{@revision}.txt"
|
163
164
|
end
|
164
165
|
|
166
|
+
def artefact_map(dest_prefix = '')
|
167
|
+
amap = {}
|
168
|
+
@artefacts.each_with_index do |a, index|
|
169
|
+
src = a[:src].gsub(REVISION_PLACEHOLDER, @revision.to_s)
|
170
|
+
dest = a[:dest].gsub(REVISION_PLACEHOLDER, @revision.to_s)
|
171
|
+
if Gem.win_platform? && !src.end_with?('.exe') && File.exist?(File.join(@root, src + '.exe'))
|
172
|
+
puts "... windows platform -- appending '.exe' (#{src})"
|
173
|
+
src += '.exe'
|
174
|
+
dest += '.exe' unless dest.end_with?('.exe')
|
175
|
+
end
|
176
|
+
src = File.join(@root,src)
|
177
|
+
dest = dest_prefix.empty? ? dest : File.join(dest_prefix, dest)
|
178
|
+
amap[src] = dest
|
179
|
+
puts "... (#{index+1}/#{@artefacts.length}) #{src} => #{dest}"
|
180
|
+
end
|
181
|
+
amap
|
182
|
+
end
|
183
|
+
|
165
184
|
def archive
|
166
|
-
puts "
|
185
|
+
puts "Archiving #{@artefacts.length} build artefacts as #{archive_name}..."
|
186
|
+
puts artefact_map
|
167
187
|
if File.exist?(archive_name)
|
168
188
|
puts "... deleting existing archive"
|
169
189
|
File.delete(archive_name)
|
170
190
|
end
|
171
191
|
Zip::File.open(archive_name, Zip::File::CREATE) do |zipfile|
|
172
|
-
|
173
|
-
src = a[:src].gsub(REVISION_PLACEHOLDER, @revision.to_s)
|
174
|
-
dest = a[:dest].gsub(REVISION_PLACEHOLDER, @revision.to_s)
|
175
|
-
if Gem.win_platform? && !src.end_with?('.exe') && File.exist?(File.join(@root, src + '.exe'))
|
176
|
-
puts "... packing on windows -- appending '.exe'"
|
177
|
-
src += '.exe'
|
178
|
-
dest += '.exe' unless dest.end_with?('.exe')
|
179
|
-
end
|
180
|
-
puts "... (#{index+1}/#{@artefacts.length}) #{src} => #{dest}"
|
181
|
-
zipfile.add(dest, File.join(@root, src))
|
182
|
-
end
|
192
|
+
artefact_map.each { |src, dest| zipfile.add(dest,src) }
|
183
193
|
puts "... embedding revision history as #{changelog_name} "
|
184
194
|
zipfile.get_output_stream(changelog_name) { |os| output_changelog(os)}
|
185
195
|
end
|
186
196
|
end
|
187
197
|
|
198
|
+
# def deploy(destination)
|
199
|
+
def deploy(destination='')
|
200
|
+
if destination=='' and @config.dig(:deploy, :dest)
|
201
|
+
destination = @config[:deploy][:dest]
|
202
|
+
end
|
203
|
+
|
204
|
+
raise Errors::NotSpecified.new(':deploy/:dest') if destination==''
|
205
|
+
|
206
|
+
puts "Deploying #{@artefacts.length} build artefacts to #{destination}..."
|
207
|
+
artefact_map(destination).each { |src, dest| FileUtils.cp(src,dest) }
|
208
|
+
#TODO Add changelog
|
209
|
+
end
|
210
|
+
|
188
211
|
def package
|
189
212
|
build
|
190
213
|
archive
|
data/lib/revision/version.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
# Defines the revision ID for the revision gem
|
2
2
|
module Revision
|
3
|
-
VERSION = "1.2.
|
3
|
+
VERSION = "1.2.6"
|
4
4
|
end
|
5
5
|
|
6
6
|
# <BEGIN CHANGELOG>
|
7
7
|
#
|
8
|
+
# Version 1.2.6 (17 May 2019)
|
9
|
+
# - Updated deploy to use default dest from yaml (if specified)
|
10
|
+
#
|
11
|
+
# Version 1.2.5 (07 Nov 2018)
|
12
|
+
# - Added 'deploy' command
|
13
|
+
#
|
8
14
|
# Version 1.2.4 (05 Sep 2018)
|
9
15
|
# - Added commit message and tag details to `revision info`
|
10
16
|
# - Minor refactoring
|
data/revision.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_runtime_dependency 'thor', '~> 0.19.1'
|
33
33
|
spec.add_runtime_dependency 'rubyzip'
|
34
34
|
|
35
|
-
spec.add_development_dependency "bundler", "~>
|
35
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
36
36
|
spec.add_development_dependency "rake", "~> 10.0"
|
37
37
|
spec.add_development_dependency "rspec", "~> 3.0"
|
38
38
|
spec.add_development_dependency "pry"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revision
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cormac Cannon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,8 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '0'
|
143
143
|
requirements: []
|
144
|
-
|
145
|
-
rubygems_version: 2.7.7
|
144
|
+
rubygems_version: 3.0.3
|
146
145
|
signing_key:
|
147
146
|
specification_version: 4
|
148
147
|
summary: Language-agnostic revision management tool
|