revision 1.2.4 → 1.2.6
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/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
|