physique 0.3.10 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/FLUENT_MIGRATOR.md +300 -300
- data/Gemfile +3 -3
- data/Gemfile.lock +51 -11
- data/Guardfile +34 -0
- data/README.md +368 -368
- data/RUBY_SETUP.md +14 -14
- data/Rakefile +1 -1
- data/lib/physique.rb +22 -22
- data/lib/physique/config.rb +23 -23
- data/lib/physique/dsl.rb +46 -46
- data/lib/physique/project_path_resolver.rb +45 -45
- data/lib/physique/solution.rb +72 -72
- data/lib/physique/task_builders/build.rb +76 -69
- data/lib/physique/task_builders/default.rb +19 -19
- data/lib/physique/task_builders/fluent_migrator.rb +302 -299
- data/lib/physique/task_builders/nuget.rb +18 -6
- data/lib/physique/task_builders/octopus.rb +4 -2
- data/lib/physique/task_builders/publish_nugets.rb +5 -3
- data/lib/physique/task_builders/test.rb +4 -4
- data/lib/physique/tasks/fluent_migrator.rb +158 -158
- data/lib/physique/tasks/nugets_pack.rb +12 -12
- data/lib/physique/tasks/octopus_pack.rb +1 -1
- data/lib/physique/tasks/sqlcmd.rb +109 -109
- data/lib/physique/tasks/versionizer.rb +112 -112
- data/lib/physique/tasks_builder.rb +59 -59
- data/lib/physique/tool_locator.rb +50 -50
- data/lib/physique/version.rb +3 -3
- data/physique.gemspec +29 -28
- data/spec/fluent_migrator_config_spec.rb +39 -39
- data/spec/project_spec.rb +42 -42
- data/spec/publish_nugets_spec.rb +40 -40
- data/spec/solution_spec.rb +11 -11
- data/spec/sqlcmd_spec.rb +146 -146
- data/spec/support/shared_contexts/rake.rb +20 -21
- data/spec/task_builders/build_spec.rb +25 -25
- data/spec/task_builders/default_spec.rb +17 -17
- data/spec/task_builders/fluent_migrator_spec.rb +70 -68
- data/spec/task_builders/nspec_spec.rb +13 -13
- data/spec/task_builders/nuget_spec.rb +16 -16
- data/spec/test_data/solutions/.nuget/NuGet.Config +5 -5
- data/spec/test_data/solutions/.nuget/NuGet.exe +0 -0
- data/spec/test_data/solutions/.nuget/NuGet.targets +144 -144
- data/spec/test_data/solutions/.nuget/packages.config +3 -3
- data/spec/test_data/solutions/basic/.semver +6 -6
- data/spec/test_data/solutions/basic/Basic.Tests/Basic.Tests.csproj +58 -58
- data/spec/test_data/solutions/basic/Basic.Tests/Class1.cs +14 -14
- data/spec/test_data/solutions/basic/Basic.Tests/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/basic/Basic.Tests/packages.config +3 -3
- data/spec/test_data/solutions/basic/Basic.sln +28 -28
- data/spec/test_data/solutions/basic/Basic/Basic.csproj +52 -52
- data/spec/test_data/solutions/basic/Basic/Class1.cs +12 -12
- data/spec/test_data/solutions/basic/Basic/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/basic/Rakefile.rb +10 -10
- data/spec/test_data/solutions/basic/packages.config +3 -3
- data/spec/test_data/solutions/fluent-migrator/.semver +6 -6
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/Migrations/.gitkeep +0 -0
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/TestMigration.cs +19 -19
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/_Scripts/create.sql +1 -1
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/_Scripts/drop.sql +4 -4
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/_Scripts/seed.sql +1 -1
- data/spec/test_data/solutions/fluent-migrator/Basic.Migrations/packages.config +3 -3
- data/spec/test_data/solutions/fluent-migrator/Basic.Specs/Basic.Specs.csproj +59 -59
- data/spec/test_data/solutions/fluent-migrator/Basic.Specs/Class1.cs +12 -12
- data/spec/test_data/solutions/fluent-migrator/Basic.Specs/DebuggerShim.cs +42 -42
- data/spec/test_data/solutions/fluent-migrator/Basic.Specs/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/fluent-migrator/Basic.Specs/packages.config +3 -3
- data/spec/test_data/solutions/fluent-migrator/Basic.sln +39 -39
- data/spec/test_data/solutions/fluent-migrator/Basic/Basic.csproj +55 -55
- data/spec/test_data/solutions/fluent-migrator/Basic/Class1.cs +12 -12
- data/spec/test_data/solutions/fluent-migrator/Basic/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/fluent-migrator/Basic/packages.config +2 -2
- data/spec/test_data/solutions/fluent-migrator/Rakefile.rb +20 -20
- data/spec/test_data/solutions/multiple-fluent-migrator/.semver +6 -6
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Migrations1/Basic.Migrations1.csproj +52 -52
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Migrations1/Class1.cs +12 -12
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Migrations1/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Migrations2/Basic.Migrations2.csproj +52 -52
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Migrations2/Class1.cs +12 -12
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Migrations2/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Specs/Basic.Specs.csproj +59 -59
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Specs/Class1.cs +12 -12
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Specs/DebuggerShim.cs +42 -42
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Specs/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.Specs/packages.config +3 -3
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic.sln +45 -45
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic/Basic.csproj +55 -55
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic/Class1.cs +12 -12
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/multiple-fluent-migrator/Basic/packages.config +2 -2
- data/spec/test_data/solutions/multiple-fluent-migrator/Rakefile.rb +28 -28
- data/spec/test_data/solutions/nspec/.semver +6 -6
- data/spec/test_data/solutions/nspec/Basic.Specs/Basic.Specs.csproj +59 -59
- data/spec/test_data/solutions/nspec/Basic.Specs/Class1.cs +12 -12
- data/spec/test_data/solutions/nspec/Basic.Specs/DebuggerShim.cs +42 -42
- data/spec/test_data/solutions/nspec/Basic.Specs/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/nspec/Basic.Specs/packages.config +3 -3
- data/spec/test_data/solutions/nspec/Basic.sln +28 -28
- data/spec/test_data/solutions/nspec/Basic/Basic.csproj +55 -55
- data/spec/test_data/solutions/nspec/Basic/Class1.cs +12 -12
- data/spec/test_data/solutions/nspec/Basic/Properties/AssemblyInfo.cs +36 -36
- data/spec/test_data/solutions/nspec/Basic/packages.config +2 -2
- data/spec/test_data/solutions/nspec/Rakefile.rb +14 -14
- data/spec/test_data/tool_locator/Program Files/Microsoft SQL Server/110/Tools/Binn/SQLCMD.exe.txt b/data/spec/test_data/tool_locator/Program Files/Microsoft SQL → Server/110/Tools/Binn/SQLCMD.exe.txt +0 -0
- data/spec/test_data/tool_locator/Windows/Microsoft.NET/Framework/v3.5/MSBuild.exe.txt +0 -0
- data/spec/test_data/tool_locator/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe.txt +0 -0
- data/spec/tool_locator_spec.rb +27 -29
- metadata +33 -16
data/RUBY_SETUP.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Installing Ruby on Windows
|
2
2
|
|
3
3
|
* The [Chocolatey Package Manager](http://chocolatey.org/) makes installing Ruby a breeze. Think of it as NuGet for your machine. To install it, follow the instructions on [their website](http://chocolatey.org/).
|
4
|
+
|
4
5
|
* Certain Chocolatey packages might not work with older versions of Powershell so update it to the latest version.
|
5
6
|
|
6
7
|
```
|
@@ -14,27 +15,26 @@
|
|
14
15
|
```
|
15
16
|
|
16
17
|
* Restart your shell to refresh the environment variables.
|
17
|
-
|
18
|
+
|
19
|
+
* After restarting, check that ruby is installed by running the following. Note that your version may be slightly different:
|
18
20
|
|
19
21
|
```
|
20
|
-
$
|
22
|
+
$ ruby --version
|
23
|
+
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
|
21
24
|
```
|
22
25
|
|
23
|
-
*
|
26
|
+
* Install Ruby DevKit.
|
24
27
|
|
25
28
|
```
|
26
|
-
$
|
27
|
-
ruby 2.1.5p273 (2014-11-13 revision 48405) [x64-mingw32]
|
29
|
+
$ choco install ruby2.devkit
|
28
30
|
```
|
29
31
|
|
30
|
-
|
32
|
+
* Register Ruby with DevKit.
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
-
|
34
|
+
```
|
35
|
+
$ cd \tools\DevKit2
|
36
|
+
$ echo - C:/tools/ruby22 >> config.yml
|
37
|
+
$ ruby dk.rb install --force
|
38
|
+
```
|
35
39
|
|
36
|
-
|
37
|
-
$ cd \tools\DevKit2
|
38
|
-
$ echo "- C:/tools/ruby215" >> config.yml
|
39
|
-
$ ruby dk.rb install --force
|
40
|
-
```
|
40
|
+
You should now be ready to Ruby!
|
data/Rakefile
CHANGED
data/lib/physique.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
# ******************************************* #
|
2
|
-
# _ _ #
|
3
|
-
# _ __ | |__ _ _ ___(_) __ _ _ _ ___ #
|
4
|
-
# | '_ \| '_ \| | | / __| |/ _` | | | |/ _ \ #
|
5
|
-
# | |_) | | | | |_| \__ \ | (_| | |_| | __/ #
|
6
|
-
# | .__/|_| |_|\__, |___/_|\__, |\__,_|\___| #
|
7
|
-
# |_| |___/ |_| #
|
8
|
-
# #
|
9
|
-
# ******************************************* #
|
10
|
-
|
11
|
-
module Physique
|
12
|
-
end
|
13
|
-
|
14
|
-
require 'active_support/core_ext/string'
|
15
|
-
require 'active_support/core_ext/array'
|
16
|
-
require 'albacore'
|
17
|
-
require 'albacore/dsl'
|
18
|
-
require 'albacore/config_dsl'
|
19
|
-
require 'albacore/nuget_model'
|
20
|
-
require 'physique/version'
|
21
|
-
require 'physique/dsl'
|
22
|
-
require 'physique/solution'
|
1
|
+
# ******************************************* #
|
2
|
+
# _ _ #
|
3
|
+
# _ __ | |__ _ _ ___(_) __ _ _ _ ___ #
|
4
|
+
# | '_ \| '_ \| | | / __| |/ _` | | | |/ _ \ #
|
5
|
+
# | |_) | | | | |_| \__ \ | (_| | |_| | __/ #
|
6
|
+
# | .__/|_| |_|\__, |___/_|\__, |\__,_|\___| #
|
7
|
+
# |_| |___/ |_| #
|
8
|
+
# #
|
9
|
+
# ******************************************* #
|
10
|
+
|
11
|
+
module Physique
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'active_support/core_ext/string'
|
15
|
+
require 'active_support/core_ext/array'
|
16
|
+
require 'albacore'
|
17
|
+
require 'albacore/dsl'
|
18
|
+
require 'albacore/config_dsl'
|
19
|
+
require 'albacore/nuget_model'
|
20
|
+
require 'physique/version'
|
21
|
+
require 'physique/dsl'
|
22
|
+
require 'physique/solution'
|
data/lib/physique/config.rb
CHANGED
@@ -1,24 +1,24 @@
|
|
1
|
-
module Physique
|
2
|
-
class MetadataConfig
|
3
|
-
def initialize
|
4
|
-
@metadata = default_metadata
|
5
|
-
|
6
|
-
Albacore.subscribe :build_version do |data|
|
7
|
-
@metadata.version = data.nuget_version
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def with_metadata
|
12
|
-
yield @metadata
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def default_metadata
|
18
|
-
metadata = Albacore::NugetModel::Metadata.new
|
19
|
-
metadata.description = 'MISSING'
|
20
|
-
metadata.authors = 'MISSING'
|
21
|
-
metadata
|
22
|
-
end
|
23
|
-
end
|
1
|
+
module Physique
|
2
|
+
class MetadataConfig
|
3
|
+
def initialize
|
4
|
+
@metadata = default_metadata
|
5
|
+
|
6
|
+
Albacore.subscribe :build_version do |data|
|
7
|
+
@metadata.version = data.nuget_version
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def with_metadata
|
12
|
+
yield @metadata
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def default_metadata
|
18
|
+
metadata = Albacore::NugetModel::Metadata.new
|
19
|
+
metadata.description = 'MISSING'
|
20
|
+
metadata.authors = 'MISSING'
|
21
|
+
metadata
|
22
|
+
end
|
23
|
+
end
|
24
24
|
end
|
data/lib/physique/dsl.rb
CHANGED
@@ -1,46 +1,46 @@
|
|
1
|
-
require 'albacore/dsl'
|
2
|
-
|
3
|
-
# Reopen Albacore DSL to get at the pre-built tasks
|
4
|
-
# There is probably a better way to do this but ```me == :ruby_noob```
|
5
|
-
module Physique
|
6
|
-
module DSL
|
7
|
-
include Albacore::DSL
|
8
|
-
|
9
|
-
private
|
10
|
-
|
11
|
-
# A rake task type for executing sqlcmd
|
12
|
-
def sqlcmd(*args, &block)
|
13
|
-
require 'physique/tasks/sqlcmd'
|
14
|
-
|
15
|
-
Albacore.define_task *args do
|
16
|
-
c = Physique::SqlCmd::Config.new
|
17
|
-
yield c
|
18
|
-
Physique::SqlCmd::Task.new(c.opts).execute
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# A rake task type for executing sqlcmd
|
23
|
-
def fluent_migrator(*args, &block)
|
24
|
-
require 'physique/tasks/fluent_migrator'
|
25
|
-
|
26
|
-
Albacore.define_task *args do
|
27
|
-
c = Physique::FluentMigrator::Config.new
|
28
|
-
yield c
|
29
|
-
Physique::FluentMigrator::Task.new(c.opts).execute
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# A rake task type for executing sqlcmd
|
34
|
-
def octopus_pack(*args, &block)
|
35
|
-
require 'physique/tasks/octopus_pack'
|
36
|
-
|
37
|
-
Albacore.define_task *args do
|
38
|
-
c = Physique::OctopusPack::Config.new
|
39
|
-
yield c
|
40
|
-
Physique::OctopusPack::Task.new(c.opts).execute
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
self.extend Albacore::DSL
|
1
|
+
require 'albacore/dsl'
|
2
|
+
|
3
|
+
# Reopen Albacore DSL to get at the pre-built tasks
|
4
|
+
# There is probably a better way to do this but ```me == :ruby_noob```
|
5
|
+
module Physique
|
6
|
+
module DSL
|
7
|
+
include Albacore::DSL
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
# A rake task type for executing sqlcmd
|
12
|
+
def sqlcmd(*args, &block)
|
13
|
+
require 'physique/tasks/sqlcmd'
|
14
|
+
|
15
|
+
Albacore.define_task *args do
|
16
|
+
c = Physique::SqlCmd::Config.new
|
17
|
+
yield c
|
18
|
+
Physique::SqlCmd::Task.new(c.opts).execute
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# A rake task type for executing sqlcmd
|
23
|
+
def fluent_migrator(*args, &block)
|
24
|
+
require 'physique/tasks/fluent_migrator'
|
25
|
+
|
26
|
+
Albacore.define_task *args do
|
27
|
+
c = Physique::FluentMigrator::Config.new
|
28
|
+
yield c
|
29
|
+
Physique::FluentMigrator::Task.new(c.opts).execute
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# A rake task type for executing sqlcmd
|
34
|
+
def octopus_pack(*args, &block)
|
35
|
+
require 'physique/tasks/octopus_pack'
|
36
|
+
|
37
|
+
Albacore.define_task *args do
|
38
|
+
c = Physique::OctopusPack::Config.new
|
39
|
+
yield c
|
40
|
+
Physique::OctopusPack::Task.new(c.opts).execute
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
self.extend Albacore::DSL
|
@@ -1,46 +1,46 @@
|
|
1
|
-
require 'albacore/project'
|
2
|
-
|
3
|
-
module Physique
|
4
|
-
module ProjectPathResolver
|
5
|
-
extend self
|
6
|
-
|
7
|
-
DEFAULT_PROJECT_FOLDER = 'src'
|
8
|
-
|
9
|
-
@@project_folder = DEFAULT_PROJECT_FOLDER
|
10
|
-
|
11
|
-
def project_dir
|
12
|
-
@@project_folder
|
13
|
-
end
|
14
|
-
|
15
|
-
def project_dir=(val)
|
16
|
-
@@project_folder = val
|
17
|
-
end
|
18
|
-
|
19
|
-
def resolve(name, ext = 'cs')
|
20
|
-
return name if is_full_path name
|
21
|
-
"#{@@project_folder}/#{name}/#{name}.#{ext}proj"
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def is_full_path(name)
|
27
|
-
name =~ /^.*\.(cs|fs|vb)proj$/i
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
module Albacore
|
33
|
-
class Project
|
34
|
-
def add_compile_node(folder, name)
|
35
|
-
if folder == :root
|
36
|
-
add_include :Compile, "#{name}"
|
37
|
-
else
|
38
|
-
add_include :Compile, "#{folder.to_s}\\#{name}"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def add_include(type, value)
|
43
|
-
@proj_xml_node.xpath("//xmlns:ItemGroup[xmlns:#{type.to_s}]").first << "<#{type.to_s} Include=\"#{value}\" />"
|
44
|
-
end
|
45
|
-
end
|
1
|
+
require 'albacore/project'
|
2
|
+
|
3
|
+
module Physique
|
4
|
+
module ProjectPathResolver
|
5
|
+
extend self
|
6
|
+
|
7
|
+
DEFAULT_PROJECT_FOLDER = 'src'
|
8
|
+
|
9
|
+
@@project_folder = DEFAULT_PROJECT_FOLDER
|
10
|
+
|
11
|
+
def project_dir
|
12
|
+
@@project_folder
|
13
|
+
end
|
14
|
+
|
15
|
+
def project_dir=(val)
|
16
|
+
@@project_folder = val
|
17
|
+
end
|
18
|
+
|
19
|
+
def resolve(name, ext = 'cs')
|
20
|
+
return name if is_full_path name
|
21
|
+
"#{@@project_folder}/#{name}/#{name}.#{ext}proj"
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def is_full_path(name)
|
27
|
+
name =~ /^.*\.(cs|fs|vb)proj$/i
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module Albacore
|
33
|
+
class Project
|
34
|
+
def add_compile_node(folder, name)
|
35
|
+
if folder == :root
|
36
|
+
add_include :Compile, "#{name}"
|
37
|
+
else
|
38
|
+
add_include :Compile, "#{folder.to_s}\\#{name}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def add_include(type, value)
|
43
|
+
@proj_xml_node.xpath("//xmlns:ItemGroup[xmlns:#{type.to_s}]").first << "<#{type.to_s} Include=\"#{value}\" />"
|
44
|
+
end
|
45
|
+
end
|
46
46
|
end
|
data/lib/physique/solution.rb
CHANGED
@@ -1,73 +1,73 @@
|
|
1
|
-
require 'rake'
|
2
|
-
require 'albacore'
|
3
|
-
require 'physique/tasks_builder'
|
4
|
-
|
5
|
-
module Physique
|
6
|
-
class SolutionConfig
|
7
|
-
self.extend Albacore::ConfigDSL
|
8
|
-
include Albacore::Logging
|
9
|
-
|
10
|
-
# Path to the solution file
|
11
|
-
attr_path_accessor :file
|
12
|
-
|
13
|
-
def initialize
|
14
|
-
@file = nil
|
15
|
-
@compilation = CompileConfig.new
|
16
|
-
@nuget = NugetConfig.new
|
17
|
-
@tests = TestConfig.new
|
18
|
-
end
|
19
|
-
|
20
|
-
def use_nuget
|
21
|
-
yield @nuget
|
22
|
-
end
|
23
|
-
|
24
|
-
def compile
|
25
|
-
yield @compilation
|
26
|
-
end
|
27
|
-
|
28
|
-
def run_tests
|
29
|
-
yield @tests
|
30
|
-
end
|
31
|
-
|
32
|
-
def fluently_migrate
|
33
|
-
@dbs_to_migrate = @dbs_to_migrate || []
|
34
|
-
|
35
|
-
migrator = FluentMigratorConfig.new
|
36
|
-
yield migrator
|
37
|
-
|
38
|
-
@dbs_to_migrate << migrator
|
39
|
-
end
|
40
|
-
|
41
|
-
alias_method :database, :fluently_migrate
|
42
|
-
|
43
|
-
def octopus_deploy
|
44
|
-
@octopus = OctopusDeployConfig.new
|
45
|
-
yield @octopus
|
46
|
-
end
|
47
|
-
|
48
|
-
def publish_nugets
|
49
|
-
@publish_nugets = PublishNugetsConfig.new
|
50
|
-
yield @publish_nugets
|
51
|
-
end
|
52
|
-
|
53
|
-
def opts
|
54
|
-
Map.new({
|
55
|
-
file: @file,
|
56
|
-
nuget: @nuget && @nuget.opts,
|
57
|
-
compile: @compilation && @compilation.opts,
|
58
|
-
test: @tests && @tests.opts,
|
59
|
-
fluent_migrator_dbs: @dbs_to_migrate && @dbs_to_migrate.map {|db| db.opts },
|
60
|
-
octopus: @octopus && @octopus.opts,
|
61
|
-
publish_nugets: @publish_nugets && @publish_nugets.opts
|
62
|
-
})
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
class Solution
|
67
|
-
def initialize(&block)
|
68
|
-
config = SolutionConfig.new
|
69
|
-
block.call config
|
70
|
-
TasksBuilder.build_tasks_for config.opts
|
71
|
-
end
|
72
|
-
end
|
1
|
+
require 'rake'
|
2
|
+
require 'albacore'
|
3
|
+
require 'physique/tasks_builder'
|
4
|
+
|
5
|
+
module Physique
|
6
|
+
class SolutionConfig
|
7
|
+
self.extend Albacore::ConfigDSL
|
8
|
+
include Albacore::Logging
|
9
|
+
|
10
|
+
# Path to the solution file
|
11
|
+
attr_path_accessor :file
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@file = nil
|
15
|
+
@compilation = CompileConfig.new
|
16
|
+
@nuget = NugetConfig.new
|
17
|
+
@tests = TestConfig.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def use_nuget
|
21
|
+
yield @nuget
|
22
|
+
end
|
23
|
+
|
24
|
+
def compile
|
25
|
+
yield @compilation
|
26
|
+
end
|
27
|
+
|
28
|
+
def run_tests
|
29
|
+
yield @tests
|
30
|
+
end
|
31
|
+
|
32
|
+
def fluently_migrate
|
33
|
+
@dbs_to_migrate = @dbs_to_migrate || []
|
34
|
+
|
35
|
+
migrator = FluentMigratorConfig.new
|
36
|
+
yield migrator
|
37
|
+
|
38
|
+
@dbs_to_migrate << migrator
|
39
|
+
end
|
40
|
+
|
41
|
+
alias_method :database, :fluently_migrate
|
42
|
+
|
43
|
+
def octopus_deploy
|
44
|
+
@octopus = OctopusDeployConfig.new
|
45
|
+
yield @octopus
|
46
|
+
end
|
47
|
+
|
48
|
+
def publish_nugets
|
49
|
+
@publish_nugets = PublishNugetsConfig.new
|
50
|
+
yield @publish_nugets
|
51
|
+
end
|
52
|
+
|
53
|
+
def opts
|
54
|
+
Map.new({
|
55
|
+
file: @file,
|
56
|
+
nuget: @nuget && @nuget.opts,
|
57
|
+
compile: @compilation && @compilation.opts,
|
58
|
+
test: @tests && @tests.opts,
|
59
|
+
fluent_migrator_dbs: @dbs_to_migrate && @dbs_to_migrate.map {|db| db.opts },
|
60
|
+
octopus: @octopus && @octopus.opts,
|
61
|
+
publish_nugets: @publish_nugets && @publish_nugets.opts
|
62
|
+
})
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
class Solution
|
67
|
+
def initialize(&block)
|
68
|
+
config = SolutionConfig.new
|
69
|
+
block.call config
|
70
|
+
TasksBuilder.build_tasks_for config.opts
|
71
|
+
end
|
72
|
+
end
|
73
73
|
end
|