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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06454aa0fe518877aa5506845e96d39e0d8e2ce7db5339a9b1ee71364c8b673e
4
- data.tar.gz: 9aedcfc26333c5e7e8ab2c5704e9c5f18269b4eacf36dc81fafc5a78ca85f88c
3
+ metadata.gz: 3137913d1f2815663cd109b664abe5fdfa605a180800a41e11fc33dc2997a0c6
4
+ data.tar.gz: 512af6c0a368097279366b31be82163c5b645b35a54d6827e17630ba7556eb04
5
5
  SHA512:
6
- metadata.gz: be25f3b19f88933a0cf26c5afc36e8b339715c876b10ce3f3dd9737441660fd02a4791f88c070c2a920f604f5008dcbf501d6f122ee401a08b4a7ecc7e7998b8
7
- data.tar.gz: 30ef34a8ea5fac05318ee0a426595425af05d7a68ae647339efe5be2f76954906426cc680f80ae3555c285be9d1f767cb8ad26210f4440a6519e9a0518606c5a
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 releasables'
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]]]
@@ -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
@@ -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 "Packaging #{@artefacts.length} build artefacts as #{archive_name}..."
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
- @artefacts.each_with_index do |a, index|
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
@@ -1,10 +1,16 @@
1
1
  # Defines the revision ID for the revision gem
2
2
  module Revision
3
- VERSION = "1.2.4"
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", "~> 1.16"
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
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: 2018-09-05 00:00:00.000000000 Z
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: '1.16'
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: '1.16'
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
- rubyforge_project:
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