albacore 2.6.1 → 2.6.2

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: ab4259ac72f44a242c23d1451a737051b85d5614
4
- data.tar.gz: 7e8c10bdc394b660b41af760b148fdb39328296d
3
+ metadata.gz: 636b34273ba679dfc811c86b1208f0ff3e4813db
4
+ data.tar.gz: 1339fe8c9b9022e29f4eb13ee0c727f9d32ee7f9
5
5
  SHA512:
6
- metadata.gz: f2b5814a9886957b05939037231cee9dc2eaf9ab61600707615180f274c31bb7b735ae02a4b06b14e247985f6b5a4c1bd8df974d2a0017134f203c97d67fedd6
7
- data.tar.gz: e5a394f19408934e9f33344a1b225cffbaff8ae5fafb61596558751d44c69e6b71b62b9d2408829e1690916b2579c5dd955585aafc0c2b3049ded60e9109cc62
6
+ metadata.gz: 5cb3b3b0c1f1faac2bbdf2bf7f00bbe865432ab2b26ae39fea051b2bfcf95c4583c52332094e8196ca4a86575dc869ff5dba23495f2d321c5baed85f203e1a62
7
+ data.tar.gz: c5f0128d0d3af334102449d2223d66be96f437698287506dcaa5f8c9d517ea4360839dcb406e2974195564fbb12e07bb899e55e90fbbb6e2ca3b29b969cb638f
@@ -41,8 +41,11 @@ module Albacore
41
41
  yield c, own_args
42
42
 
43
43
  fail "unable to find MsBuild or XBuild" unless c.exe
44
- command = Albacore::Build::Cmd.new(c.work_dir, c.exe, c.parameters)
45
- Albacore::Build::Task.new(command).execute
44
+
45
+ c.files.each do |f|
46
+ command = Albacore::Build::Cmd.new(c.work_dir, c.exe, c.params_for_file(f))
47
+ Albacore::Build::Task.new(command).execute
48
+ end
46
49
  end
47
50
  end
48
51
 
@@ -53,7 +56,7 @@ module Albacore
53
56
  c = Albacore::NugetsRestore::Config.new
54
57
  yield c, own_args
55
58
 
56
- c.ensure_authentication!
59
+ c.ensure_authentication!
57
60
 
58
61
  c.packages.each do |p|
59
62
  command = Albacore::NugetsRestore::Cmd.new(c.work_dir, c.exe, c.opts_for_pkgcfg(p))
@@ -0,0 +1,47 @@
1
+ require 'albacore/logging'
2
+ require 'albacore/project'
3
+
4
+ module Albacore
5
+ # a solution encapsulates the properties from a sln file.
6
+ class Solution
7
+ include Logging
8
+
9
+ attr_reader :path_base, :filename, :content
10
+
11
+ def initialize path
12
+ raise ArgumentError, 'solution path does not exist' unless File.exists? path.to_s
13
+ path = path.to_s unless path.is_a? String
14
+ @content = open(path)
15
+ @path_base, @filename = File.split path
16
+ end
17
+
18
+ def projects
19
+ project_paths.map { |path| File.join(@path_base, path) }
20
+ .select { |path| File.file?(path) }
21
+ .map {|path| Albacore::Project.new(File.absolute_path(path)) }
22
+ end
23
+
24
+ def project_paths
25
+ project_matches.map { |matches| matches[:location] }
26
+ .select { |path| File.extname(path).end_with? 'proj' }
27
+
28
+ end
29
+
30
+ # get the path of the solution file
31
+ def path
32
+ File.join @path_base, @filename
33
+ end
34
+
35
+ # Gets the path of the solution file
36
+ def to_s
37
+ path
38
+ end
39
+
40
+ private
41
+
42
+ def project_matches
43
+ project_regexp = /^\s*Project\(.+\) = "(?<name>.+?)", "(?<location>.+?)", "(?<guid>.+?)"/
44
+ @content.map { |line| project_regexp.match(line) }.reject(&:nil?)
45
+ end
46
+ end
47
+ end
@@ -42,6 +42,8 @@ module Albacore
42
42
 
43
43
  w = lambda { |e| CrossPlatformCmd.which(e) ? e : nil }
44
44
 
45
+ @files = []
46
+
45
47
  @exe = w.call( "xbuild" ) ||
46
48
  w.call( "msbuild" ) ||
47
49
  heuristic_executable
@@ -54,9 +56,11 @@ module Albacore
54
56
  'minimal')
55
57
  end
56
58
 
59
+ attr_accessor :files
60
+
57
61
  # this is the solution file to build (or the project files themselves)
58
62
  attr_path_accessor :sln, :file do |val|
59
- @parameters.add val
63
+ @files.concat [*val]
60
64
  end
61
65
 
62
66
  # Call for each target that you want to add, or pass an array or
@@ -100,7 +104,6 @@ module Albacore
100
104
  set_logging mode
101
105
  end
102
106
 
103
-
104
107
  # Gets or sets a target .NET Framework version to build the project with, which
105
108
  # enables an MSBuild task to build a project that targets a different version of
106
109
  # the .NET Framework than the one specified in the project. Valid values are 2.0,
@@ -145,6 +148,11 @@ module Albacore
145
148
  @parameters.add "/nologo"
146
149
  end
147
150
 
151
+ def params_for_file file
152
+ update_file file
153
+ @parameters
154
+ end
155
+
148
156
  private
149
157
  def set_logging mode
150
158
  modes = %w{quiet minimal normal detailed diagnostic}.collect{ |m| "/verbosity:#{m}" }
@@ -169,6 +177,12 @@ module Albacore
169
177
  @parameters.add "/#{prop_name}:#{callable_prop_val.call}"
170
178
  end
171
179
 
180
+ # There can be only one
181
+ def update_file val
182
+ @parameters.delete_if { |param| File.file? param }
183
+ @parameters.add ::Albacore::Paths.normalise_slashes val
184
+ end
185
+
172
186
  def make_target
173
187
  @targets.join(';')
174
188
  end
@@ -195,7 +209,6 @@ module Albacore
195
209
  end
196
210
  CrossPlatformCmd.which(msb) ? msb : nil
197
211
  end
198
-
199
212
  end
200
213
  class Task
201
214
  def initialize command_line
@@ -40,6 +40,7 @@ module Albacore
40
40
 
41
41
  pars = original_pars.dup
42
42
  pars << nuspec_file
43
+ pars << '-NoPackageAnalysis' unless @opts.get :package_analysis
43
44
  pkg = get_nuget_path_of do
44
45
  system @executable, pars, :work_dir => @work_dir
45
46
  end
@@ -49,9 +50,9 @@ module Albacore
49
50
  # if the symbols flag is set and there's a symbols file specified
50
51
  # then run NuGet.exe to generate the .symbols.nupkg file
51
52
  if nuspec_symbols_file
52
- pars = original_pars.dup
53
- pars << '-Symbols'
54
- pars << nuspec_symbols_file
53
+ pars = original_pars.dup
54
+ pars << '-Symbols'
55
+ pars << nuspec_symbols_file
55
56
  spkg = with_subterfuge pkg do
56
57
  get_nuget_path_of do
57
58
  system @executable, pars, :work_dir => @work_dir
@@ -103,7 +104,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
103
104
  res
104
105
  end
105
106
  end
106
-
107
+
107
108
  # This tasktype allows you to quickly package project files to nuget
108
109
  # packages.
109
110
  #
@@ -135,7 +136,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
135
136
  attr_writer :files
136
137
 
137
138
  # sets the nuspec file
138
- attr_writer :nuspec
139
+ attr_writer :nuspec
139
140
 
140
141
 
141
142
  # sets the MsBuild configuration that is used to produce the output into
@@ -148,6 +149,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
148
149
  @symbols = false
149
150
  @project_dependencies = true
150
151
  @nuget_dependencies = true
152
+ @package_analysis = true
151
153
  @leave_nuspec = false
152
154
  fill_required
153
155
  end
@@ -185,6 +187,12 @@ and report a bug to albacore with the full output. Here's the nuget process outp
185
187
  @nuget_dependencies = false
186
188
  end
187
189
 
190
+ # call this if you want to disable NuGet's package analysis
191
+ # when creating the nupkg file
192
+ def no_package_analysis
193
+ @package_analysis = false
194
+ end
195
+
188
196
  def nuget_gem_exe
189
197
  @exe = Albacore::Nugets::find_nuget_gem_exe
190
198
  end
@@ -195,7 +203,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
195
203
 
196
204
  unless @nuspec
197
205
  [:authors, :description, :version].each do |required|
198
- warn "metadata##{required} is missing from nugets_pack [nugets pack: config]" if @package.metadata.send(required) == 'MISSING'
206
+ warn "metadata##{required} is missing from nugets_pack [nugets pack: config]" if @package.metadata.send(required) == 'MISSING'
199
207
  end
200
208
  end
201
209
 
@@ -210,6 +218,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
210
218
  :configuration => @configuration,
211
219
  :project_dependencies => @project_dependencies,
212
220
  :nuget_dependencies => @nuget_dependencies,
221
+ :package_analysis => @package_analysis,
213
222
  :original_path => FileUtils.pwd,
214
223
  :leave_nuspec => @leave_nuspec
215
224
  })
@@ -230,7 +239,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
230
239
  include Logging
231
240
 
232
241
  def initialize opts, &before_execute
233
-
242
+
234
243
  unless opts.get(:nuspec)
235
244
  raise ArgumentError, 'opts is not a map' unless opts.is_a? Map
236
245
  raise ArgumentError, 'no files given' unless opts.get(:files).length > 0
@@ -316,7 +325,7 @@ and report a bug to albacore with the full output. Here's the nuget process outp
316
325
  target = @opts.get :target
317
326
 
318
327
  trace "creating NON-SYMBOL package for '#{proj.name}', targeting '#{target}' [nugets pack: task]"
319
- nuspec = Albacore::NugetModel::Package.from_xxproj proj,
328
+ nuspec = Albacore::NugetModel::Package.from_xxproj proj,
320
329
  symbols: false,
321
330
  verify_files: true,
322
331
  dotnet_version: target,
@@ -368,10 +377,12 @@ and report a bug to albacore with the full output. Here's the nuget process outp
368
377
  out = path_to(@opts.get(:out), cwd)
369
378
  nuspec = path_to nuspec, cwd
370
379
  nuspec_symbols = path_to nuspec_symbols, cwd if nuspec_symbols
371
-
380
+
372
381
  cmd = Albacore::NugetsPack::Cmd.new exe,
373
- work_dir: cwd,
374
- out: out
382
+ work_dir: cwd,
383
+ out: out,
384
+ package_analysis: @opts.get(:package_analysis)
385
+
375
386
 
376
387
  # run any concerns that modify the command
377
388
  @before_execute.call cmd if @before_execute
@@ -398,14 +409,14 @@ and report a bug to albacore with the full output. Here's the nuget process outp
398
409
  :nuspec => nuspec,
399
410
  :nupkg => nuget,
400
411
  :location => nuget
401
- )
412
+ )
402
413
  end
403
414
 
404
415
  def self.accept? f
405
416
  File.extname(f).downcase != '.nuspec'
406
417
  end
407
418
  end
408
-
419
+
409
420
  # generate a nuget from a nuspec
410
421
  class NuspecTask
411
422
  include Logging
@@ -451,4 +462,4 @@ and report a bug to albacore with the full output. Here's the nuget process outp
451
462
  end
452
463
  end
453
464
  end
454
- end
465
+ end
@@ -1,3 +1,3 @@
1
1
  module Albacore
2
- VERSION = "2.6.1"
2
+ VERSION = "2.6.2"
3
3
  end
@@ -7,7 +7,7 @@ describe 'build config' do
7
7
  subject do
8
8
  Albacore::Build::Config.new
9
9
  end
10
- %w[file= sln= target target= logging logging= prop cores cores= tools_version tools_version=].each do |writer|
10
+ %w[files= file= sln= target target= logging logging= prop cores cores= tools_version tools_version=].each do |writer|
11
11
  it "should respond to :#{writer}" do
12
12
  expect(subject).to respond_to(:"#{writer}")
13
13
  end
@@ -42,6 +42,7 @@ describe 'when running with sln' do
42
42
 
43
43
  before do
44
44
  cfg.sln = 'src/HelloWorld.sln'
45
+ cfg.params_for_file cfg.sln
45
46
  cfg.target = %w|Clean Build|
46
47
  cmd.execute
47
48
  end
@@ -60,4 +61,3 @@ describe 'when running with sln' do
60
61
  expect(subject.is_mono_command?).to be false
61
62
  end
62
63
  end
63
-
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ require 'albacore/solution'
3
+ require 'albacore/project'
4
+
5
+ describe Albacore::Solution, "when reading solution file" do
6
+ def solution_path
7
+ File.expand_path('../testdata/Project/Project.sln', __FILE__)
8
+ end
9
+ subject do
10
+ Albacore::Solution.new solution_path
11
+ end
12
+
13
+ it "should contain Project path in project_paths" do
14
+ expect(subject.project_paths).to include 'Project.fsproj'
15
+ end
16
+
17
+ it "should contain Project in projects" do
18
+ project_path = File.expand_path('../testdata/Project/Project.fsproj', __FILE__)
19
+ project = Albacore::Project.new project_path
20
+ expect(subject.projects.map { |p| p.id }).to include project.id
21
+ end
22
+
23
+ describe 'public API' do
24
+ it do
25
+ expect(subject).to respond_to :projects
26
+ end
27
+ it do
28
+ expect(subject).to respond_to :project_paths
29
+ end
30
+ end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: albacore
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1
4
+ version: 2.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrik Feldt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-08-10 00:00:00.000000000 Z
12
+ date: 2016-09-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -151,6 +151,7 @@ files:
151
151
  - "./lib/albacore/project.rb"
152
152
  - "./lib/albacore/rake_overrides.rb"
153
153
  - "./lib/albacore/semver.rb"
154
+ - "./lib/albacore/solution.rb"
154
155
  - "./lib/albacore/task_types/asmver.rb"
155
156
  - "./lib/albacore/task_types/asmver/cpp.rb"
156
157
  - "./lib/albacore/task_types/asmver/cs.rb"
@@ -219,6 +220,7 @@ files:
219
220
  - spec/shared_contexts.rb
220
221
  - spec/smoke_require_spec.rb
221
222
  - spec/smoke_spec.rb
223
+ - spec/solution_spec.rb
222
224
  - spec/spec_helper.rb
223
225
  - spec/sql_cmd_spec.rb
224
226
  - spec/sql_package_spec.rb
@@ -418,7 +420,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
418
420
  version: '0'
419
421
  requirements: []
420
422
  rubyforge_project: albacore
421
- rubygems_version: 2.4.5.1
423
+ rubygems_version: 2.5.1
422
424
  signing_key:
423
425
  specification_version: 4
424
426
  summary: Dolphin-safe and awesome Mono and .Net Rake-tasks
@@ -461,6 +463,7 @@ test_files:
461
463
  - spec/shared_contexts.rb
462
464
  - spec/smoke_require_spec.rb
463
465
  - spec/smoke_spec.rb
466
+ - spec/solution_spec.rb
464
467
  - spec/spec_helper.rb
465
468
  - spec/sql_cmd_spec.rb
466
469
  - spec/sql_package_spec.rb