albacore 2.0.0.rc.17 → 2.0.0.rc.18

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
  SHA1:
3
- metadata.gz: 6823d6f1406cace16fb3c048712d34ed91dce0a8
4
- data.tar.gz: 3b28345de6fba1e380d473c3561779d6883dce3c
3
+ metadata.gz: 3adb7ca26eb58c83011c056ec55d4fe3022225d7
4
+ data.tar.gz: 9d32ba36a45484bc4b9d3f4266c8fed4a69abb62
5
5
  SHA512:
6
- metadata.gz: 48a099250203b3664e1d1df889868a4df935dfb43f8666b7cea1fd3bf492818a62583a06626022c3fd5e7483fb33ed514ce6c2e88e651e71d4ad0bbf26932271
7
- data.tar.gz: dc4b9de248d57e33e280ec2f5a5f3ce49be2d1e594cfb0b35677ed0c4ff9620aca0b51261f6de8d0a98308ff327831c5c5104ace87003347a0d574c5de8b3a1c
6
+ metadata.gz: 1ac4d76af91d85c459b9acb7d8f5c705e0d65604ae805c770db33109436b67a80548c83e9f6e704760a6eb9837571392b614258894a8366187b5e38be2227efc
7
+ data.tar.gz: 1d23c2bb643d2381d1d981e9b9ed1949a7e201ecfe15802526e9244f84339e59f21da71e7448507f69ae5a1a1b5515a75f3ba9fcba5874b7b211c91ad135683b
data/README.md CHANGED
@@ -263,6 +263,43 @@ end
263
263
 
264
264
  TBD
265
265
 
266
+ ### Docs: appspecs
267
+
268
+ Example rakefile (see spec/test_appspecs/corp.service in albacore source).
269
+
270
+ ```
271
+ require 'bundler/setup'
272
+ require 'albacore'
273
+
274
+ Configuration = ENV['CONFIGURATION'] || 'Release'
275
+
276
+ desc 'build example project'
277
+ build :compile do |b|
278
+ b.sln = 'corp.service.svc.sln'
279
+ b.prop 'Configuration', Configuration
280
+ end
281
+
282
+ desc 'build service packages from all the appspecs'
283
+ appspecs :services => :compile do |as|
284
+ as.files = Dir.glob '**/.appspec', File::FNM_DOTMATCH
285
+ as.out = 'build'
286
+ end
287
+
288
+ task :default => :services
289
+ ```
290
+
291
+ This example Rakefile will create RPMs on RHEL-derivative systems, DEBs on
292
+ Debian-derivative systems and Chocolatey packages on Windows, as well as publish
293
+ those packages to the CI server.
294
+
295
+ As usual you can use Albacore.subscribe to jack into the output of this
296
+ task-type, if you e.g. want to publish your packages to your package server -
297
+ DAB or YUM. If you include the TeamCity extension, your TeamCity server will
298
+ automatically become a chocolatey package server that you can use
299
+ [puppet-chocolatey](git@github.com:karaaie/puppet-chocolatey.git) to install the
300
+ packages of on your Windows boxen. Or you can use puppet proper with a yum repo
301
+ on your linux boxen.
302
+
266
303
  ## Tasks
267
304
 
268
305
  Tasks are things you can include that create singleton ruby tasks that are
data/albacore.gemspec CHANGED
@@ -24,15 +24,12 @@ EOF
24
24
  s.add_dependency 'rake', '>10' # this gem builds on rake
25
25
  s.add_dependency 'map', '~>6.5' # https://github.com/ahoward/map for options handling
26
26
  s.add_dependency 'nokogiri', '~> 1.5' # used to manipulate and read *proj files
27
- s.add_dependency 'facter', '~> 1.7' # used to gather system data
28
27
  s.add_dependency 'semver2', '~> 3.3'
29
- s.add_dependency 'ProcessPilot', '~> 2.0'
30
- s.add_dependency 'highline', '~> 1.6'
31
28
 
32
29
  s.add_development_dependency 'rubygems-tasks', '~>0.2'
33
30
  s.add_development_dependency 'rspec', '>= 2.13'
34
31
 
35
- s.files = `git ls-files`.split("\n")
32
+ s.files = `git ls-files`.split("\n").concat(Dir.glob('./resources/**'))
36
33
  s.test_files = `git ls-files -- spec/*`.split("\n")
37
34
  # s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
38
35
  s.require_paths = ['lib']
@@ -79,6 +79,8 @@ module Albacore
79
79
  conf['title'] || proj.title
80
80
  end
81
81
 
82
+ alias_method :id, :title_raw
83
+
82
84
  # the description that is used when installing and reading about the package in the
83
85
  # package manager
84
86
  def description
@@ -0,0 +1,155 @@
1
+ require 'albacore/app_spec'
2
+ require 'albacore/errors/invalid_app_spec_error'
3
+ require 'map'
4
+
5
+ module Albacore
6
+ class CpackAppSpec
7
+ end
8
+
9
+ class CpackAppSpec::Config
10
+ # create a new configuration for multiple xxproj-s to be packed with fpm into .deb/.rpm
11
+ def initialize
12
+ @files = []
13
+ @out = '.'
14
+ @configuration = 'Release'
15
+ end
16
+
17
+ # set the output path, defaults to '.'
18
+ def out= out
19
+ @out = out
20
+ end
21
+
22
+ # give the configuration a list of files to match
23
+ def files= files
24
+ @files = files
25
+ end
26
+
27
+ def configuration= conf
28
+ @configuration = conf
29
+ end
30
+
31
+ def opts
32
+ Map.new bundler: @bundler,
33
+ files: @files,
34
+ out: @out,
35
+ configuration: @configuration
36
+ end
37
+ end
38
+
39
+ class CpackAppSpec::Task
40
+ include ::Albacore::Logging
41
+ include ::Albacore::CrossPlatformCmd
42
+
43
+ # create a new task instance with the given opts
44
+ def initialize opts
45
+ raise ArgumentError, 'opts is nil' if opts.nil?
46
+ @opts = opts
47
+ end
48
+
49
+ def execute
50
+ warn 'executing cpack app spec task, but there are no input files [cpack_app_spec::task#execute]' if
51
+ @opts.get(:files).empty?
52
+
53
+ cpack_package @opts.get(:out),
54
+ @opts.get(:files),
55
+ @opts.get(:configuration)
56
+ end
57
+
58
+ private
59
+ def cpack_package out, appspecs, configuration
60
+ appspecs.
61
+ map { |path| Albacore::AppSpec.load path }.
62
+ each do |spec|
63
+ nuspec = create_nuspec spec
64
+ debug { nuspec }
65
+ create_cpack out, spec, nuspec, configuration
66
+ end
67
+ end
68
+
69
+ def git_release_notes
70
+ tags = `git tag`.split(/\n/)
71
+ last_tag = tags[-1]
72
+ second_last_tag = tags[-2] || `git rev-list --max-parents=0 HEAD`
73
+ logs = `git log --pretty=format:%s #{second_last_tag}..`.split(/\n/)
74
+ "Release Notes for #{last_tag}:
75
+ #{logs.inject('') { |state, line| state + "\n * #{line}" }}"
76
+ end
77
+
78
+ def create_nuspec app_spec
79
+ require 'albacore/nuget_model'
80
+ p = Albacore::NugetModel::Package.new
81
+ p.with_metadata do |m|
82
+ m.id = app_spec.id
83
+ m.title = app_spec.title_raw
84
+ m.version = app_spec.version
85
+ m.authors = app_spec.authors
86
+ m.owners = app_spec.owners
87
+ m.description = app_spec.description || app_spec.title
88
+ m.release_notes = git_release_notes
89
+ m.summary = app_spec.summary
90
+ m.language = app_spec.language
91
+ m.project_url = app_spec.project_url || 'https://haf.se'
92
+ m.icon_url = app_spec.icon_url || 'https://haf.se/spacer.gif'
93
+ m.license_url = app_spec.license_url || 'https://haf.se'
94
+ m.copyright = app_spec.copyright || 'See Authors'
95
+ m.tags = app_spec.tags
96
+ end
97
+ p.to_xml
98
+ end
99
+
100
+ # create a chocolatey install script for a topshelf service on windows
101
+ def create_chocolatey_install out, service_dir, exe, app_spec
102
+ tools = "#{out}/#{app_spec.id}/tools"
103
+
104
+ FileUtils.mkdir tools unless Dir.exists? tools
105
+ File.open(File.join(tools, 'chocolateyInstall.ps1'), 'w+') do |io|
106
+ contents = embedded_resource '../../resources/chocolateyInstall.ps1'
107
+ io.write contents
108
+ io.write %{
109
+ Install-Service `
110
+ -ServiceExeName "#{exe}" -ServiceDir "#{service_dir}" `
111
+ -CurrentPath (Split-Path $MyInvocation.MyCommand.Path)
112
+ }
113
+ end
114
+ end
115
+
116
+ def create_cpack out, app_spec, nuspec_xml, configuration
117
+ target = "#{out}/#{app_spec.id}"
118
+ bin = "#{target}/bin"
119
+
120
+ # create target
121
+ FileUtils.mkdir_p target
122
+
123
+ # write nuspec
124
+ File.open("#{target}/#{app_spec.id}.nuspec", 'w+') { |io| io.write nuspec_xml }
125
+
126
+ # write tools
127
+ create_chocolatey_install out,
128
+ app_spec.exe,
129
+ "#{app_spec.target_root_dir}\\#{app_spec.id}",
130
+ app_spec
131
+
132
+ # copy contents of package
133
+ proj_path = File.join(app_spec.proj.proj_path_base,
134
+ app_spec.proj.output_path(configuration), '.').
135
+ gsub(/\//, '\\')
136
+ FileUtils.cp_r proj_path, bin, :verbose => true
137
+
138
+ # package it
139
+ Dir.chdir target do
140
+ system 'cpack'
141
+ end
142
+
143
+ # publish it
144
+ Albacore.publish :artifact, OpenStruct.new(:location => "#{target}/*.nupkg")
145
+ end
146
+
147
+ def embedded_resource relative_path
148
+ File.open(embedded_resource_path(relative_path), 'r') { |io| io.read }
149
+ end
150
+
151
+ def embedded_resource_path relative_path
152
+ File.join(File.dirname(File.expand_path(__FILE__)), relative_path)
153
+ end
154
+ end
155
+ end
@@ -3,7 +3,6 @@ require 'map'
3
3
  require 'open3'
4
4
  require 'timeout'
5
5
  require 'stringio'
6
- require 'processpilot/processpilot'
7
6
  require 'albacore/paths'
8
7
  require 'albacore/logging'
9
8
  require 'albacore/errors/command_not_found_error'
@@ -173,15 +172,6 @@ module Albacore
173
172
  block = lambda { |ok, status, output| ok } unless block_given?
174
173
  sh *cmd, &block
175
174
  end
176
-
177
- def system_control cmd, *opts, &block
178
- cmd = opts[0]
179
- opts = Map.options((Hash === cmd.last) ? cmd.pop : {}) # same arg parsing as rake
180
- chdir opts[:work_dir] do
181
- puts cmd
182
- ProcessPilot::pilot cmd, opts, &block
183
- end
184
- end
185
175
 
186
176
  def normalise_slashes path
187
177
  ::Albacore::Paths.normalise_slashes path
data/lib/albacore/dsl.rb CHANGED
@@ -96,12 +96,21 @@ module Albacore
96
96
  end
97
97
 
98
98
  # Generate .rpm or .deb files from .appspec files
99
- def fpm_gen *args, &block
100
- require 'albacore/fpm_app_spec'
101
- Albacore.define_task *args do
102
- c = ::Albacore::FpmAppSpec::Config.new
103
- yield c
104
- ::Albacore::FpmAppSpec::Task.new(c.opts).execute
99
+ def appspecs *args, &block
100
+ if Albacore.windows?
101
+ require 'albacore/cpack_app_spec'
102
+ Albacore.define_task *args do
103
+ c = ::Albacore::CpackAppSpec::Config.new
104
+ yield c
105
+ ::Albacore::CpackAppSpec::Task.new(c.opts).execute
106
+ end
107
+ else
108
+ require 'albacore/fpm_app_spec'
109
+ Albacore.define_task *args do
110
+ c = ::Albacore::FpmAppSpec::Config.new
111
+ yield c
112
+ ::Albacore::FpmAppSpec::Task.new(c.opts).execute
113
+ end
105
114
  end
106
115
  end
107
116
  end
@@ -0,0 +1,4 @@
1
+ module Albacore
2
+ class InvalidAppSpecError < ::StandardError
3
+ end
4
+ end
@@ -1,10 +1,8 @@
1
1
  require 'albacore/app_spec'
2
+ require 'albacore/errors/invalid_app_spec_error'
2
3
  require 'map'
3
4
 
4
5
  module Albacore
5
- class InvalidAppSpecError < ::StandardError
6
- end
7
-
8
6
  # An object that is capable of generating FPM commands - use by giving it a
9
7
  # spec and then calling #execute or #generate_flags. You may use this object
10
8
  # to package a directory.
@@ -68,6 +66,8 @@ module Albacore
68
66
  # create a new configuration for multiple xxproj-s to be packed with fpm into .deb/.rpm
69
67
  def initialize
70
68
  @bundler = true
69
+ @files = []
70
+ @out = '.'
71
71
  end
72
72
 
73
73
  # turn off the using of bundler; bundler will be used by default
@@ -76,20 +76,25 @@ module Albacore
76
76
  end
77
77
 
78
78
  # set the output path, defaults to '.'
79
- def out=
79
+ def out= out
80
+ @out = out
80
81
  end
81
82
 
82
83
  # give the configuration a list of files to match
83
- def files=
84
+ def files= files
85
+ @files = files
84
86
  end
85
87
 
86
88
  def opts
87
- Map.new bundler: @bundler
89
+ Map.new bundler: @bundler,
90
+ files: @files,
91
+ out: @out
88
92
  end
89
93
  end
90
94
 
91
95
  # task implementation that can be #execute'd
92
96
  class FpmAppSpec::Task
97
+ include ::Albacore::Logging
93
98
  include ::Albacore::CrossPlatformCmd
94
99
 
95
100
  # create a new task instance with the given opts
@@ -100,19 +105,53 @@ module Albacore
100
105
 
101
106
  # this runs fpm and does some file copying
102
107
  def execute
103
- # TODO: supporting multiple projects
108
+ warn 'executing fpm app spec task, but there are no input files [fpm_app_spec::task#execute]' if
109
+ @opts.get(:files).empty?
104
110
 
105
- if opts.get :bundler
106
- system 'bundle', %w|exec fpm|.concat(opts.get(:fpm_spec).generate_flags_flat)
107
- else
108
- system 'fpm', opts.get(:fpm_spec).generate_flags_flat
109
- end
111
+ fpm_package @opts.get(:out), @opts.get(:files)
110
112
  end
111
113
 
112
114
  private
113
- # TODO: finish
114
- def specs
115
- @opts.files
115
+ def fpm_package out, appspecs
116
+ pkg = File.join out, 'pkg'
117
+
118
+ appspecs.
119
+ map { |path| Albacore::AppSpec.load path }.
120
+ map { |spec| [spec, Albacore::FpmAppSpec.new(spec, pkg)] }.
121
+ each do |spec, fpm|
122
+ targ = "#{out}/#{spec.title}/tmp-dest/"
123
+ FileUtils.mkdir_p targ
124
+
125
+ bin = File.join targ, "opt/#{spec.title}/bin"
126
+ FileUtils.mkdir_p bin
127
+ FileUtils.cp_r Dir.glob(File.join(fpm_rel(spec, spec.bin_folder), '*')),
128
+ bin, verbose: true
129
+
130
+ etc = File.join targ, "etc/#{spec.title}"
131
+ FileUtils.mkdir_p etc, verbose: true
132
+ # FileUtils.cp_r Dir.glob(File.join(fpm_rel(spec, spec.conf_folder), '*')),
133
+ # etc, verbose: true
134
+
135
+ spec.contents.each do |con|
136
+ FileUtils.cp_r fpm_rel(spec, con), File.join(targ, con), verbose: true
137
+ end
138
+
139
+ run fpm.generate_flags_flat({ '-C' => targ })
140
+ end
141
+ end
142
+
143
+
144
+ def fpm_rel spec, path
145
+ File.join spec.dir_path, path
146
+ end
147
+
148
+ def run pars
149
+ if @opts.get :bundle
150
+ system 'bundle', %w|exec fpm|.concat(pars)
151
+ else
152
+ system 'fpm', pars
153
+ end
154
+ Albacore.publish :artifact, OpenStruct.new({ :location => "#{pkg}/#{fpm.filename}" })
116
155
  end
117
156
  end
118
157
  end
@@ -3,7 +3,6 @@
3
3
  require 'albacore/cmd_config'
4
4
  require 'albacore/cross_platform_cmd'
5
5
  require 'albacore/logging'
6
- require 'highline/import'
7
6
 
8
7
  module Albacore::Tools
9
8
  module FluentMigrator
@@ -1,3 +1,3 @@
1
1
  module Albacore
2
- VERSION = "2.0.0.rc.17"
2
+ VERSION = "2.0.0.rc.18"
3
3
  end
@@ -0,0 +1,120 @@
1
+ $ErrorActionPreference = "Stop"
2
+
3
+ Function Resolve-Error($ErrorRecord = $Error[0]) {
4
+ $ErrorRecord | Format-List * -Force
5
+ $ErrorRecord.InvocationInfo | Format-List *
6
+ $Exception = $ErrorRecord.Exception
7
+ for ($i = 0; $Exception; $i++, ($Exception = $Exception.InnerException))
8
+ { "$i" * 80
9
+ $Exception | Format-List * -Force
10
+ }
11
+ }
12
+
13
+ Function Check-Exit($Output) {
14
+ if (-not $?) {
15
+ throw "Last command exited with $($LASTEXITCODE)"
16
+ }
17
+ }
18
+
19
+ Function System([string] $Command, [Switch] $Silent) {
20
+ if ($Silent) {
21
+ Invoke-Expression $Command | Tee-Object -Variable scriptOutput | Out-Null
22
+ } else {
23
+ Invoke-Expression $Command | Tee-Object -Variable scriptOutput
24
+ }
25
+ Check-Exit $scriptOutput
26
+ }
27
+
28
+ Function Get-ServiceVersion([string] $ServiceExePath) {
29
+ (ls $ServiceExePath | Select-Object -First 1).VersionInfo.FileVersion.ToString()
30
+ }
31
+
32
+ Function Copy-WithBackup([string] $Source, [string] $Target, [string] $ServiceExePath) {
33
+ if ([string]::IsNullOrWhiteSpace($Source)) {
34
+ throw (New-Object System.ArgumentNullException "Source - Copy-WithBackup")
35
+ }
36
+ if ([string]::IsNullOrWhiteSpace($Target)) {
37
+ throw (New-Object System.ArgumentNullException "Target - Copy-WithBackup")
38
+ }
39
+ if ([string]::IsNullOrWhiteSpace($ServiceExePath)) {
40
+ throw (New-Object System.ArgumentNullException "ServiceExePath - Copy-WithBackup")
41
+ }
42
+ #Start-Transaction -Timeout 2
43
+ try {
44
+ # don't have to -UseTransaction, as tx equiv. to FS state here
45
+ if (Test-Path -Path $Target) {
46
+ $oldVersion = Get-ServiceVersion $ServiceExePath
47
+ $backup = "$Target-$oldVersion"
48
+
49
+ Write-Host -ForegroundColor Green "Using backup folder '$backup'"
50
+ if (Test-Path $backup) {
51
+ Remove-Item -Path $backup -Force -Recurse
52
+ }
53
+ Move-Item $Target $backup -Force #-UseTransaction
54
+ }
55
+
56
+ Write-Host -ForegroundColor Green "Copy-Item -Recurse $Source $Target"
57
+ New-Item -ItemType Directory -Path $Target | Out-Null
58
+ Copy-Item -Recurse $Source $Target #-UseTransaction
59
+ #Complete-Transaction
60
+ } catch {
61
+ #Undo-Transaction
62
+ throw
63
+ }
64
+ }
65
+
66
+ Function Invoke-WithStoppedTopshelf([string] $ServiceExePath, [scriptblock] $WhileStopped) {
67
+ if ([string]::IsNullOrWhiteSpace($ServiceExePath)) {
68
+ throw (New-Object System.ArgumentNullException "ServiceExePath - Invoke-WithStoppedTopshelf")
69
+ }
70
+
71
+ if (Test-Path -Path $ServiceExePath) {
72
+ Write-Host -ForegroundColor Green "$ServiceExePath uninstall"
73
+ System "$ServiceExePath uninstall" -Silent
74
+ }
75
+ try {
76
+ Invoke-Command -ScriptBlock $WhileStopped
77
+ } finally {
78
+ if (Test-Path -Path $ServiceExePath) {
79
+ Write-Host -ForegroundColor Green "$ServiceExePath install"
80
+ System "$ServiceExePath install" -Silent
81
+
82
+ Write-Host -ForegroundColor Green "$ServiceExePath start"
83
+ System "$ServiceExePath start" -Silent
84
+ } else {
85
+ Write-Host -ForegroundColor Yellow "Path $ServiceExePath doesn't exist"
86
+ }
87
+ }
88
+ }
89
+
90
+ Function Install-Service([string] $ServiceExeName,
91
+ [string] $ServiceDir,
92
+ [string] $CurrentPath = $(Get-Location).Path) {
93
+ if ([string]::IsNullOrWhiteSpace($ServiceExeName)) {
94
+ throw (New-Object System.ArgumentNullException "ServiceExeName - Install-Service")
95
+ }
96
+ if ([string]::IsNullOrWhiteSpace($ServiceDir)) {
97
+ throw (New-Object System.ArgumentNullException "ServiceDir - Install-Service")
98
+ }
99
+ if ([string]::IsNullOrWhiteSpace($CurrentPath)) {
100
+ throw (New-Object System.ArgumentNullException "CurrentPath - Install-Service")
101
+ }
102
+
103
+ # relative to chocolatey
104
+ $parentDir = Split-Path -Parent $CurrentPath
105
+ # get binaries' dir's contents
106
+ $bin = Join-Path $parentDir "bin\*"
107
+
108
+ try {
109
+ $serviceExePath = Join-Path $ServiceDir $ServiceExeName
110
+ Invoke-WithStoppedTopshelf -ServiceExePath $serviceExePath {
111
+ Copy-WithBackup -Source $bin -Target $ServiceDir -ServiceExePath $serviceExePath
112
+ }
113
+ # Write-Host -ForegroundColor Green "Successfully installed $ServiceExeName" # OR:
114
+ Write-ChocolateySuccess "The service was succesfully installed"
115
+ } catch {
116
+ Resolve-Error $_.Exception
117
+ Write-ChocolateyFailure 'Failed to install service'
118
+ throw
119
+ }
120
+ }
data/spec/dsl_spec.rb CHANGED
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  #puts "X has methods: #{X.new.private_methods.inspect}"
16
16
 
17
- %w[nugets_restore nugets_pack asmver build test_runner restore_hint_paths fpm_gen].each do |sym|
17
+ %w[nugets_restore nugets_pack asmver build test_runner restore_hint_paths appspecs].each do |sym|
18
18
  method = :"#{sym}"
19
19
  describe "that #{method}(*args, &block) is included when doing `require 'albacore'`" do
20
20
  subject do
@@ -0,0 +1,6 @@
1
+ bin/
2
+ obj/
3
+ *.user
4
+ *.mdb
5
+ *.suo
6
+
@@ -0,0 +1 @@
1
+ build/
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'albacore', :path => '../../..'
@@ -0,0 +1,18 @@
1
+ require 'bundler/setup'
2
+ require 'albacore'
3
+
4
+ Configuration = ENV['CONFIGURATION'] || 'Release'
5
+
6
+ desc 'build example project'
7
+ build :compile do |b|
8
+ b.sln = 'corp.service.svc.sln'
9
+ b.prop 'Configuration', Configuration
10
+ end
11
+
12
+ desc 'build service packages from all the appspecs'
13
+ appspecs :services => :compile do |as|
14
+ as.files = Dir.glob '**/.appspec', File::FNM_DOTMATCH
15
+ as.out = 'build'
16
+ end
17
+
18
+ task :default => :services
@@ -0,0 +1,20 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 2012
4
+ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "corp.service.svc", "corp.service.svc/corp.service.svc.fsproj", "{D433C9FD-BFB9-48B5-834E-E53BB89D9E13}"
5
+ EndProject
6
+ Global
7
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
8
+ Debug|Any CPU = Debug|Any CPU
9
+ Release|Any CPU = Release|Any CPU
10
+ EndGlobalSection
11
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
12
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Debug|Any CPU.Build.0 = Debug|Any CPU
14
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Release|Any CPU.ActiveCfg = Release|Any CPU
15
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Release|Any CPU.Build.0 = Release|Any CPU
16
+ EndGlobalSection
17
+ GlobalSection(SolutionProperties) = preSolution
18
+ HideSolutionNode = FALSE
19
+ EndGlobalSection
20
+ EndGlobal
@@ -0,0 +1,3 @@
1
+ ---
2
+ version: 1.2.3
3
+ authors: Henrik Feldt
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <configuration>
3
+ <startup>
4
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
5
+ </startup>
6
+ <runtime>
7
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
8
+ <dependentAssembly>
9
+ <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
10
+ <bindingRedirect oldVersion="4.0.0.0" newVersion="4.3.0.0"/>
11
+ <bindingRedirect oldVersion="2.3.5.0" newVersion="4.3.0.0"/>
12
+ <bindingRedirect oldVersion="2.0.0.0" newVersion="4.3.0.0"/>
13
+
14
+ </dependentAssembly>
15
+ </assemblyBinding>
16
+ </runtime>
17
+ </configuration>
@@ -0,0 +1,7 @@
1
+ // Learn more about F# at http://fsharp.net
2
+ // See the 'F# Tutorial' project for more help.
3
+
4
+ [<EntryPoint>]
5
+ let main argv =
6
+ printfn "%A" argv
7
+ 0 // return an integer exit code
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4
+ <PropertyGroup>
5
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7
+ <SchemaVersion>2.0</SchemaVersion>
8
+ <ProjectGuid>d433c9fd-bfb9-48b5-834e-e53bb89d9e13</ProjectGuid>
9
+ <OutputType>Exe</OutputType>
10
+ <RootNamespace>corp.service.svc</RootNamespace>
11
+ <AssemblyName>corp.service.svc</AssemblyName>
12
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
13
+ <Name>corp.service.svc</Name>
14
+ </PropertyGroup>
15
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
16
+ <DebugSymbols>true</DebugSymbols>
17
+ <DebugType>full</DebugType>
18
+ <Optimize>false</Optimize>
19
+ <Tailcalls>false</Tailcalls>
20
+ <OutputPath>bin\Debug\</OutputPath>
21
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
22
+ <WarningLevel>3</WarningLevel>
23
+ <PlatformTarget>AnyCPU</PlatformTarget>
24
+ <DocumentationFile>bin\Debug\corp.service.svc.XML</DocumentationFile>
25
+ <Prefer32Bit>true</Prefer32Bit>
26
+ </PropertyGroup>
27
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
28
+ <DebugType>pdbonly</DebugType>
29
+ <Optimize>true</Optimize>
30
+ <Tailcalls>true</Tailcalls>
31
+ <OutputPath>bin\Release\</OutputPath>
32
+ <DefineConstants>TRACE</DefineConstants>
33
+ <WarningLevel>3</WarningLevel>
34
+ <PlatformTarget>AnyCPU</PlatformTarget>
35
+ <DocumentationFile>bin\Release\corp.service.svc.XML</DocumentationFile>
36
+ <Prefer32Bit>true</Prefer32Bit>
37
+ </PropertyGroup>
38
+ <ItemGroup>
39
+ <Reference Include="mscorlib" />
40
+ <Reference Include="FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
41
+ <Private>True</Private>
42
+ </Reference>
43
+ <Reference Include="System" />
44
+ <Reference Include="System.Core" />
45
+ <Reference Include="System.Numerics" />
46
+ </ItemGroup>
47
+ <ItemGroup>
48
+ <Compile Include="Program.fs" />
49
+ <None Include="App.config" />
50
+ </ItemGroup>
51
+ <PropertyGroup>
52
+ <MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
53
+ </PropertyGroup>
54
+ <Import Project="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" Condition=" Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')" />
55
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
56
+ Other similar extension points exist, see Microsoft.Common.targets.
57
+ <Target Name="BeforeBuild">
58
+ </Target>
59
+ <Target Name="AfterBuild">
60
+ </Target>
61
+ -->
62
+ </Project>
@@ -0,0 +1,20 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 2012
4
+ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "corp.service.svc", "corp.service.svc.fsproj", "{D433C9FD-BFB9-48B5-834E-E53BB89D9E13}"
5
+ EndProject
6
+ Global
7
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
8
+ Debug|Any CPU = Debug|Any CPU
9
+ Release|Any CPU = Release|Any CPU
10
+ EndGlobalSection
11
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
12
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Debug|Any CPU.Build.0 = Debug|Any CPU
14
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Release|Any CPU.ActiveCfg = Release|Any CPU
15
+ {D433C9FD-BFB9-48B5-834E-E53BB89D9E13}.Release|Any CPU.Build.0 = Release|Any CPU
16
+ EndGlobalSection
17
+ GlobalSection(SolutionProperties) = preSolution
18
+ HideSolutionNode = FALSE
19
+ EndGlobalSection
20
+ EndGlobal
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.0.0.rc.17
4
+ version: 2.0.0.rc.18
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: 2014-07-28 00:00:00.000000000 Z
12
+ date: 2014-07-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -53,20 +53,6 @@ dependencies:
53
53
  - - ~>
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.5'
56
- - !ruby/object:Gem::Dependency
57
- name: facter
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- version: '1.7'
63
- type: :runtime
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '1.7'
70
56
  - !ruby/object:Gem::Dependency
71
57
  name: semver2
72
58
  requirement: !ruby/object:Gem::Requirement
@@ -81,34 +67,6 @@ dependencies:
81
67
  - - ~>
82
68
  - !ruby/object:Gem::Version
83
69
  version: '3.3'
84
- - !ruby/object:Gem::Dependency
85
- name: ProcessPilot
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ~>
89
- - !ruby/object:Gem::Version
90
- version: '2.0'
91
- type: :runtime
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ~>
96
- - !ruby/object:Gem::Version
97
- version: '2.0'
98
- - !ruby/object:Gem::Dependency
99
- name: highline
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ~>
103
- - !ruby/object:Gem::Version
104
- version: '1.6'
105
- type: :runtime
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ~>
110
- - !ruby/object:Gem::Version
111
- version: '1.6'
112
70
  - !ruby/object:Gem::Dependency
113
71
  name: rubygems-tasks
114
72
  requirement: !ruby/object:Gem::Requirement
@@ -161,10 +119,12 @@ files:
161
119
  - lib/albacore/application.rb
162
120
  - lib/albacore/cmd_config.rb
163
121
  - lib/albacore/config_dsl.rb
122
+ - lib/albacore/cpack_app_spec.rb
164
123
  - lib/albacore/cross_platform_cmd.rb
165
124
  - lib/albacore/dsl.rb
166
125
  - lib/albacore/errors/command_failed_error.rb
167
126
  - lib/albacore/errors/command_not_found_error.rb
127
+ - lib/albacore/errors/invalid_app_spec_error.rb
168
128
  - lib/albacore/errors/unfilled_property_error.rb
169
129
  - lib/albacore/ext/README.md
170
130
  - lib/albacore/ext/teamcity.rb
@@ -199,6 +159,7 @@ files:
199
159
  - lib/albacore/tools/restore_hint_paths.rb
200
160
  - lib/albacore/tools/zippy.rb
201
161
  - lib/albacore/version.rb
162
+ - resources/chocolateyInstall.ps1
202
163
  - spec/Rakefile
203
164
  - spec/albacore_spec.rb
204
165
  - spec/app_spec_spec.rb
@@ -249,6 +210,16 @@ files:
249
210
  - spec/support/returnstatus/returnstatus.pdb
250
211
  - spec/support/sh_interceptor.rb
251
212
  - spec/tasks/versionizer_spec.rb
213
+ - spec/test_appspecs/.gitignore
214
+ - spec/test_appspecs/corp.service/.gitignore
215
+ - spec/test_appspecs/corp.service/Gemfile
216
+ - spec/test_appspecs/corp.service/Rakefile
217
+ - spec/test_appspecs/corp.service/corp.service.svc.sln
218
+ - spec/test_appspecs/corp.service/corp.service.svc/.appspec
219
+ - spec/test_appspecs/corp.service/corp.service.svc/App.config
220
+ - spec/test_appspecs/corp.service/corp.service.svc/Program.fs
221
+ - spec/test_appspecs/corp.service/corp.service.svc/corp.service.svc.fsproj
222
+ - spec/test_appspecs/corp.service/corp.service.svc/corp.service.svc.sln
252
223
  - spec/test_runner_spec.rb
253
224
  - spec/testdata/.gitignore
254
225
  - spec/testdata/DebugProject/.gitignore
@@ -288,6 +259,7 @@ files:
288
259
  - spec/testdata/example.nuspec
289
260
  - spec/testdata/example.symbols.nuspec
290
261
  - spec/tools/fluent_migrator_spec.rb
262
+ - ./resources/chocolateyInstall.ps1
291
263
  homepage: http://albacorebuild.net
292
264
  licenses:
293
265
  - MIT
@@ -363,6 +335,16 @@ test_files:
363
335
  - spec/support/returnstatus/returnstatus.pdb
364
336
  - spec/support/sh_interceptor.rb
365
337
  - spec/tasks/versionizer_spec.rb
338
+ - spec/test_appspecs/.gitignore
339
+ - spec/test_appspecs/corp.service/.gitignore
340
+ - spec/test_appspecs/corp.service/Gemfile
341
+ - spec/test_appspecs/corp.service/Rakefile
342
+ - spec/test_appspecs/corp.service/corp.service.svc.sln
343
+ - spec/test_appspecs/corp.service/corp.service.svc/.appspec
344
+ - spec/test_appspecs/corp.service/corp.service.svc/App.config
345
+ - spec/test_appspecs/corp.service/corp.service.svc/Program.fs
346
+ - spec/test_appspecs/corp.service/corp.service.svc/corp.service.svc.fsproj
347
+ - spec/test_appspecs/corp.service/corp.service.svc/corp.service.svc.sln
366
348
  - spec/test_runner_spec.rb
367
349
  - spec/testdata/.gitignore
368
350
  - spec/testdata/DebugProject/.gitignore