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 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