This repository was archived by the owner on Sep 5, 2021. It is now read-only.
Repository navigation
Expand file tree
/
Copy pathRakefile
More file actions
80 lines (73 loc) · 3.16 KB
/
Copy pathRakefile
File metadata and controls
80 lines (73 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# --------------------------------------------------------------------------- #
#
# Copyright (c) 2010 CubeSoft, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# --------------------------------------------------------------------------- #
require 'rake'
require 'rake/clean'
# --------------------------------------------------------------------------- #
# configuration
# --------------------------------------------------------------------------- #
PROJECT = 'Cube.Backwards'
LIBRARY = '../packages'
CONFIG = 'Release'
BRANCHES = ['master']
PLATFORMS = ['Any CPU']
PACKAGES = ["Libraries/#{PROJECT}.nuspec"]
# --------------------------------------------------------------------------- #
# commands
# --------------------------------------------------------------------------- #
BUILD = "msbuild -v:m -t:build -p:Configuration=#{CONFIG}"
PACK = %(nuget pack -Properties "Configuration=#{CONFIG};Platform=AnyCPU")
# --------------------------------------------------------------------------- #
# clean
# --------------------------------------------------------------------------- #
CLEAN.include("#{PROJECT}.*.nupkg")
CLEAN.include("#{LIBRARY}/cube.*")
CLEAN.include(['bin', 'obj'].map{ |e| "**/#{e}" })
# --------------------------------------------------------------------------- #
# default
# --------------------------------------------------------------------------- #
desc "Build the solution and create NuGet packages."
task :default => [:clean_build, :pack]
# --------------------------------------------------------------------------- #
# pack
# --------------------------------------------------------------------------- #
desc "Create NuGet packages in the master branch."
task :pack do
sh("git checkout master")
PACKAGES.each { |e| sh("#{PACK} #{e}") }
end
# --------------------------------------------------------------------------- #
# clean_build
# --------------------------------------------------------------------------- #
desc "Clean objects and build the solution in pre-defined branches and platforms."
task :clean_build => [:clean] do
BRANCHES.product(PLATFORMS).each { |e|
sh("git checkout #{e[0]}")
RakeFileUtils::rm_rf(FileList.new("#{LIBRARY}/cube.*"))
Rake::Task[:build].reenable
Rake::Task[:build].invoke(e[1])
}
end
# --------------------------------------------------------------------------- #
# build
# --------------------------------------------------------------------------- #
desc "Build the solution in the current branch."
task :build, [:platform] do |_, e|
e.with_defaults(:platform => PLATFORMS[0])
sh("nuget restore #{PROJECT}.sln")
sh(%(#{BUILD} -p:Platform="#{e.platform}" #{PROJECT}.sln))
end