uppercutbuild 0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. data/lib/NDepend.xml +251 -0
  2. data/lib/build.bat +32 -0
  3. data/lib/build/Castle.Core.dll +0 -0
  4. data/lib/build/Castle.DynamicProxy2.dll +0 -0
  5. data/lib/build/Castle.MicroKernel.dll +0 -0
  6. data/lib/build/Castle.Windsor.dll +0 -0
  7. data/lib/build/UppercuT.xml +5 -0
  8. data/lib/build/analyze.step +78 -0
  9. data/lib/build/analyzers/gallio.test.step +145 -0
  10. data/lib/build/analyzers/mbunit2.test.step +146 -0
  11. data/lib/build/analyzers/moma.step +143 -0
  12. data/lib/build/analyzers/ncover.step +186 -0
  13. data/lib/build/analyzers/ndepend.step +95 -0
  14. data/lib/build/analyzers/nitriq.step +116 -0
  15. data/lib/build/analyzers/nunit.test.step +172 -0
  16. data/lib/build/analyzers/test.step +99 -0
  17. data/lib/build/compile.step +178 -0
  18. data/lib/build/customize.bat +41 -0
  19. data/lib/build/customize.build +76 -0
  20. data/lib/build/customizers/item.template +50 -0
  21. data/lib/build/default.build +164 -0
  22. data/lib/build/deploymentBuilder.step +103 -0
  23. data/lib/build/environmentBuilder.step +119 -0
  24. data/lib/build/generateBuildInfo.step +106 -0
  25. data/lib/build/ilmerge.build +174 -0
  26. data/lib/build/open.build +103 -0
  27. data/lib/build/package.step +234 -0
  28. data/lib/build/policyChecks.step +81 -0
  29. data/lib/build/updateAssemblies.build +107 -0
  30. data/lib/build/uppercut.dll +0 -0
  31. data/lib/build/uppercut.tasks.dll +0 -0
  32. data/lib/build/versionBuilder.step +148 -0
  33. data/lib/build/versioners/git.step +106 -0
  34. data/lib/build/versioners/hg.step +106 -0
  35. data/lib/build/versioners/svn.step +112 -0
  36. data/lib/build/versioners/tfs.step +104 -0
  37. data/lib/build/zip.build +162 -0
  38. data/lib/deployment/scripts/database.deploy +37 -0
  39. data/lib/deployment/templates/AppDeployment.bat +9 -0
  40. data/lib/deployment/templates/DBDeployment.RESTORE.bat +9 -0
  41. data/lib/deployment/templates/DBDeployment.bat +9 -0
  42. data/lib/lib/MbUnit2/MbUnit.AddIn.dll +0 -0
  43. data/lib/lib/MbUnit2/MbUnit.Cons.exe +0 -0
  44. data/lib/lib/MbUnit2/MbUnit.Cons.exe.config +12 -0
  45. data/lib/lib/MbUnit2/MbUnit.Framework.2.0.dll +0 -0
  46. data/lib/lib/MbUnit2/MbUnit.Framework.XML +6929 -0
  47. data/lib/lib/MbUnit2/MbUnit.Framework.dll +0 -0
  48. data/lib/lib/MbUnit2/MbUnit.GUI.exe +0 -0
  49. data/lib/lib/MbUnit2/MbUnit.GUI.exe.config +14 -0
  50. data/lib/lib/MbUnit2/MbUnit.MSBuild.Tasks.dll +0 -0
  51. data/lib/lib/MbUnit2/NAnt.Core.dll +0 -0
  52. data/lib/lib/MbUnit2/NGraphviz.Helpers.dll +0 -0
  53. data/lib/lib/MbUnit2/NGraphviz.Layout.dll +0 -0
  54. data/lib/lib/MbUnit2/NGraphviz.dll +0 -0
  55. data/lib/lib/MbUnit2/QuickGraph.Algorithms.Graphviz.dll +0 -0
  56. data/lib/lib/MbUnit2/QuickGraph.Algorithms.dll +0 -0
  57. data/lib/lib/MbUnit2/QuickGraph.dll +0 -0
  58. data/lib/lib/MbUnit2/Refly.dll +0 -0
  59. data/lib/lib/MbUnit2/TestDriven.Framework.dll +0 -0
  60. data/lib/lib/MbUnit2/TestFu.XML +1932 -0
  61. data/lib/lib/MbUnit2/TestFu.dll +0 -0
  62. data/lib/lib/MbUnit2/XsdTidy.exe +0 -0
  63. data/lib/lib/MoMA/Definitions/2.4.0.1-defs.zip +0 -0
  64. data/lib/lib/MoMA/ICSharpCode.SharpZipLib.dll +0 -0
  65. data/lib/lib/MoMA/MoMA.Analyzer.dll +0 -0
  66. data/lib/lib/MoMA/MoMA.exe +0 -0
  67. data/lib/lib/MoMA/Mono.Cecil.dll +0 -0
  68. data/lib/lib/MoMA/Reports/Media/fail.png +0 -0
  69. data/lib/lib/MoMA/Reports/Media/minus.png +0 -0
  70. data/lib/lib/MoMA/Reports/Media/moma.css +117 -0
  71. data/lib/lib/MoMA/Reports/Media/moma.js +17 -0
  72. data/lib/lib/MoMA/Reports/Media/pass.png +0 -0
  73. data/lib/lib/MoMA/Reports/Media/plus.png +0 -0
  74. data/lib/lib/MoMA/Resources/button_ok.png +0 -0
  75. data/lib/lib/MoMA/Resources/dialog-warning.png +0 -0
  76. data/lib/lib/MoMA/Resources/dialogback.png +0 -0
  77. data/lib/lib/MoMA/Resources/list-add.png +0 -0
  78. data/lib/lib/MoMA/Resources/list-directory.png +0 -0
  79. data/lib/lib/MoMA/Resources/list-remove.png +0 -0
  80. data/lib/lib/MoMA/Resources/monoback.png +0 -0
  81. data/lib/lib/MoMA/Resources/spinner.gif +0 -0
  82. data/lib/lib/NAnt/CollectionGen.dll +0 -0
  83. data/lib/lib/NAnt/Interop.MsmMergeTypeLib.dll +0 -0
  84. data/lib/lib/NAnt/Interop.StarTeam.dll +0 -0
  85. data/lib/lib/NAnt/Interop.WindowsInstaller.dll +0 -0
  86. data/lib/lib/NAnt/MSITaskErrors.mst +0 -0
  87. data/lib/lib/NAnt/MSITaskTemplate.msi +0 -0
  88. data/lib/lib/NAnt/MSMTaskErrors.mst +0 -0
  89. data/lib/lib/NAnt/MSMTaskTemplate.msm +0 -0
  90. data/lib/lib/NAnt/MbUnit.Framework.dll +0 -0
  91. data/lib/lib/NAnt/MbUnit.Tasks.dll +0 -0
  92. data/lib/lib/NAnt/NAnt.CompressionTasks.dll +0 -0
  93. data/lib/lib/NAnt/NAnt.Contrib.Tasks.dll +0 -0
  94. data/lib/lib/NAnt/NAnt.Core.dll +0 -0
  95. data/lib/lib/NAnt/NAnt.DotNetTasks.dll +0 -0
  96. data/lib/lib/NAnt/NAnt.MSNetTasks.dll +0 -0
  97. data/lib/lib/NAnt/NAnt.NUnit.dll +0 -0
  98. data/lib/lib/NAnt/NAnt.NUnit1Tasks.dll +0 -0
  99. data/lib/lib/NAnt/NAnt.NUnit2Tasks.dll +0 -0
  100. data/lib/lib/NAnt/NAnt.SourceControlTasks.dll +0 -0
  101. data/lib/lib/NAnt/NAnt.VSNetTasks.dll +0 -0
  102. data/lib/lib/NAnt/NAnt.VisualCppTasks.dll +0 -0
  103. data/lib/lib/NAnt/NAnt.Win32Tasks.dll +0 -0
  104. data/lib/lib/NAnt/NAnt.exe +0 -0
  105. data/lib/lib/NAnt/NAnt.exe.config +2126 -0
  106. data/lib/lib/NAnt/NCoverExplorer.NAntTasks.dll +0 -0
  107. data/lib/lib/NAnt/NDepend.Build.NAntTasks.dll +0 -0
  108. data/lib/lib/NAnt/NDoc.Documenter.NAnt.dll +0 -0
  109. data/lib/lib/NAnt/QuickGraph.Algorithms.dll +0 -0
  110. data/lib/lib/NAnt/QuickGraph.dll +0 -0
  111. data/lib/lib/NAnt/SLiNgshoT.Core.dll +0 -0
  112. data/lib/lib/NAnt/SLiNgshoT.exe +0 -0
  113. data/lib/lib/NAnt/SourceSafe.Interop.dll +0 -0
  114. data/lib/lib/NAnt/ThoughtWorks.CruiseControl.MSBuild.dll +0 -0
  115. data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.dll +0 -0
  116. data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.xml +36 -0
  117. data/lib/lib/NAnt/lib/common/1.1/nunit-console-runner.dll +0 -0
  118. data/lib/lib/NAnt/lib/common/1.1/nunit-console.exe +0 -0
  119. data/lib/lib/NAnt/lib/common/1.1/nunit.core.dll +0 -0
  120. data/lib/lib/NAnt/lib/common/1.1/nunit.framework.dll +0 -0
  121. data/lib/lib/NAnt/lib/common/1.1/nunit.util.dll +0 -0
  122. data/lib/lib/NAnt/lib/common/2.0/nunit-console-runner.dll +0 -0
  123. data/lib/lib/NAnt/lib/common/2.0/nunit-console.exe +0 -0
  124. data/lib/lib/NAnt/lib/common/2.0/nunit.core.dll +0 -0
  125. data/lib/lib/NAnt/lib/common/2.0/nunit.framework.dll +0 -0
  126. data/lib/lib/NAnt/lib/common/2.0/nunit.util.dll +0 -0
  127. data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.Console.dll +0 -0
  128. data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.dll +0 -0
  129. data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpZipLib.dll +0 -0
  130. data/lib/lib/NAnt/lib/common/neutral/NDoc.Core.dll +0 -0
  131. data/lib/lib/NAnt/lib/common/neutral/NDoc.Documenter.Msdn.dll +0 -0
  132. data/lib/lib/NAnt/lib/common/neutral/NDoc.ExtendedUI.dll +0 -0
  133. data/lib/lib/NAnt/lib/common/neutral/NUnitCore.dll +0 -0
  134. data/lib/lib/NAnt/lib/mono/1.0/NDoc.Core.dll +0 -0
  135. data/lib/lib/NAnt/lib/mono/1.0/NDoc.Documenter.Msdn.dll +0 -0
  136. data/lib/lib/NAnt/lib/mono/1.0/NDoc.ExtendedUI.dll +0 -0
  137. data/lib/lib/NAnt/lib/mono/1.0/nunit.core.dll +0 -0
  138. data/lib/lib/NAnt/lib/mono/1.0/nunit.framework.dll +0 -0
  139. data/lib/lib/NAnt/lib/mono/1.0/nunit.util.dll +0 -0
  140. data/lib/lib/NAnt/lib/mono/2.0/NDoc.Core.dll +0 -0
  141. data/lib/lib/NAnt/lib/mono/2.0/NDoc.Documenter.Msdn.dll +0 -0
  142. data/lib/lib/NAnt/lib/mono/2.0/NDoc.ExtendedUI.dll +0 -0
  143. data/lib/lib/NAnt/lib/mono/2.0/nunit.core.dll +0 -0
  144. data/lib/lib/NAnt/lib/mono/2.0/nunit.framework.dll +0 -0
  145. data/lib/lib/NAnt/lib/mono/2.0/nunit.util.dll +0 -0
  146. data/lib/lib/NAnt/lib/net/1.0/NDoc.Core.dll +0 -0
  147. data/lib/lib/NAnt/lib/net/1.0/NDoc.Documenter.Msdn.dll +0 -0
  148. data/lib/lib/NAnt/lib/net/1.0/NDoc.ExtendedUI.dll +0 -0
  149. data/lib/lib/NAnt/lib/net/1.0/nunit-console-runner.dll +0 -0
  150. data/lib/lib/NAnt/lib/net/1.0/nunit-console.exe +0 -0
  151. data/lib/lib/NAnt/lib/net/1.0/nunit.core.dll +0 -0
  152. data/lib/lib/NAnt/lib/net/1.0/nunit.framework.dll +0 -0
  153. data/lib/lib/NAnt/lib/net/1.0/nunit.util.dll +0 -0
  154. data/lib/lib/NAnt/lib/net/1.1/NDoc.Core.dll +0 -0
  155. data/lib/lib/NAnt/lib/net/1.1/NDoc.Documenter.Msdn.dll +0 -0
  156. data/lib/lib/NAnt/lib/net/1.1/NDoc.ExtendedUI.dll +0 -0
  157. data/lib/lib/NAnt/lib/net/1.1/nunit.core.dll +0 -0
  158. data/lib/lib/NAnt/lib/net/1.1/nunit.framework.dll +0 -0
  159. data/lib/lib/NAnt/lib/net/1.1/nunit.util.dll +0 -0
  160. data/lib/lib/NAnt/lib/net/2.0/NDoc.Core.dll +0 -0
  161. data/lib/lib/NAnt/lib/net/2.0/NDoc.Documenter.Msdn.dll +0 -0
  162. data/lib/lib/NAnt/lib/net/2.0/NDoc.ExtendedUI.dll +0 -0
  163. data/lib/lib/NAnt/lib/net/2.0/nunit.core.dll +0 -0
  164. data/lib/lib/NAnt/lib/net/2.0/nunit.framework.dll +0 -0
  165. data/lib/lib/NAnt/lib/net/2.0/nunit.util.dll +0 -0
  166. data/lib/lib/NAnt/log4net.dll +0 -0
  167. data/lib/lib/NAnt/scvs.exe +0 -0
  168. data/lib/lib/NCover/ActiproEULA.html +287 -0
  169. data/lib/lib/NCover/ActiproSoftware.Shared.Net11.dll +0 -0
  170. data/lib/lib/NCover/ActiproSoftware.SyntaxEditor.Net11.dll +0 -0
  171. data/lib/lib/NCover/ActiproSoftware.WinUICore.Net11.dll +0 -0
  172. data/lib/lib/NCover/CommandBars.dll +0 -0
  173. data/lib/lib/NCover/ConsoleConfig.xsd +123 -0
  174. data/lib/lib/NCover/ConsoleExample.config +94 -0
  175. data/lib/lib/NCover/CoverLib.dll +0 -0
  176. data/lib/lib/NCover/Coverage.xsl +339 -0
  177. data/lib/lib/NCover/CoverageReport.xsl +468 -0
  178. data/lib/lib/NCover/ICSharpCode.TextEditor.dll +0 -0
  179. data/lib/lib/NCover/LicencePersonal.rtf +334 -0
  180. data/lib/lib/NCover/MSVCP80.dll +0 -0
  181. data/lib/lib/NCover/MSVCR80.dll +0 -0
  182. data/lib/lib/NCover/Microsoft.VC80.CRT.manifest +8 -0
  183. data/lib/lib/NCover/NCover.Console.exe +0 -0
  184. data/lib/lib/NCover/NCover.Console.exe.config +6 -0
  185. data/lib/lib/NCover/NCover.Framework.dll +0 -0
  186. data/lib/lib/NCover/NCoverExplorer.Console.exe +0 -0
  187. data/lib/lib/NCover/NCoverExplorer.Core.dll +0 -0
  188. data/lib/lib/NCover/NCoverExplorer.NCoverRunner.dll +0 -0
  189. data/lib/lib/NCover/NCoverExplorer.WinForms.dll +0 -0
  190. data/lib/lib/NCover/NCoverExplorer.exe +0 -0
  191. data/lib/lib/NCover/NCoverExplorer.exe.config +8 -0
  192. data/lib/lib/NCover/NCoverExplorerFAQ.html +303 -0
  193. data/lib/lib/NCover/NCoverExplorerReleaseNotes.html +874 -0
  194. data/lib/lib/NCover/NCoverFAQ.html +429 -0
  195. data/lib/lib/NCover/VC80CRT.MAN +15 -0
  196. data/lib/lib/NCover/license.txt +299 -0
  197. data/lib/lib/NUnit/NUnitTests.config +84 -0
  198. data/lib/lib/NUnit/NUnitTests.nunit +14 -0
  199. data/lib/lib/NUnit/agent.conf +4 -0
  200. data/lib/lib/NUnit/agent.log.conf +18 -0
  201. data/lib/lib/NUnit/framework/nunit.framework.dll +0 -0
  202. data/lib/lib/NUnit/framework/nunit.framework.xml +10113 -0
  203. data/lib/lib/NUnit/framework/nunit.mocks.dll +0 -0
  204. data/lib/lib/NUnit/framework/pnunit.framework.dll +0 -0
  205. data/lib/lib/NUnit/launcher.log.conf +18 -0
  206. data/lib/lib/NUnit/lib/Failure.png +0 -0
  207. data/lib/lib/NUnit/lib/Ignored.png +0 -0
  208. data/lib/lib/NUnit/lib/Inconclusive.png +0 -0
  209. data/lib/lib/NUnit/lib/Skipped.png +0 -0
  210. data/lib/lib/NUnit/lib/Success.png +0 -0
  211. data/lib/lib/NUnit/lib/fit.dll +0 -0
  212. data/lib/lib/NUnit/lib/log4net.dll +0 -0
  213. data/lib/lib/NUnit/lib/nunit-console-runner.dll +0 -0
  214. data/lib/lib/NUnit/lib/nunit-gui-runner.dll +0 -0
  215. data/lib/lib/NUnit/lib/nunit.core.dll +0 -0
  216. data/lib/lib/NUnit/lib/nunit.core.interfaces.dll +0 -0
  217. data/lib/lib/NUnit/lib/nunit.fixtures.dll +0 -0
  218. data/lib/lib/NUnit/lib/nunit.uiexception.dll +0 -0
  219. data/lib/lib/NUnit/lib/nunit.uikit.dll +0 -0
  220. data/lib/lib/NUnit/lib/nunit.util.dll +0 -0
  221. data/lib/lib/NUnit/nunit-agent-x86.exe +0 -0
  222. data/lib/lib/NUnit/nunit-agent-x86.exe.config +76 -0
  223. data/lib/lib/NUnit/nunit-agent.exe +0 -0
  224. data/lib/lib/NUnit/nunit-agent.exe.config +76 -0
  225. data/lib/lib/NUnit/nunit-console-x86.exe +0 -0
  226. data/lib/lib/NUnit/nunit-console-x86.exe.config +76 -0
  227. data/lib/lib/NUnit/nunit-console.exe +0 -0
  228. data/lib/lib/NUnit/nunit-console.exe.config +76 -0
  229. data/lib/lib/NUnit/nunit-x86.exe +0 -0
  230. data/lib/lib/NUnit/nunit-x86.exe.config +91 -0
  231. data/lib/lib/NUnit/nunit.exe +0 -0
  232. data/lib/lib/NUnit/nunit.exe.config +91 -0
  233. data/lib/lib/NUnit/nunit.framework.dll +0 -0
  234. data/lib/lib/NUnit/pnunit-agent.exe +0 -0
  235. data/lib/lib/NUnit/pnunit-agent.exe.config +77 -0
  236. data/lib/lib/NUnit/pnunit-launcher.exe +0 -0
  237. data/lib/lib/NUnit/pnunit-launcher.exe.config +77 -0
  238. data/lib/lib/NUnit/pnunit.framework.dll +0 -0
  239. data/lib/lib/NUnit/pnunit.tests.dll +0 -0
  240. data/lib/lib/NUnit/runpnunit.bat +2 -0
  241. data/lib/lib/NUnit/test.conf +24 -0
  242. data/lib/lib/NUnit/tests/loadtest-assembly.dll +0 -0
  243. data/lib/lib/NUnit/tests/mock-assembly.dll +0 -0
  244. data/lib/lib/NUnit/tests/nonamespace-assembly.dll +0 -0
  245. data/lib/lib/NUnit/tests/nunit-console.tests.dll +0 -0
  246. data/lib/lib/NUnit/tests/nunit-gui.tests.dll +0 -0
  247. data/lib/lib/NUnit/tests/nunit.core.tests.dll +0 -0
  248. data/lib/lib/NUnit/tests/nunit.fixtures.tests.dll +0 -0
  249. data/lib/lib/NUnit/tests/nunit.framework.dll +0 -0
  250. data/lib/lib/NUnit/tests/nunit.framework.tests.dll +0 -0
  251. data/lib/lib/NUnit/tests/nunit.mocks.tests.dll +0 -0
  252. data/lib/lib/NUnit/tests/nunit.uiexception.tests.dll +0 -0
  253. data/lib/lib/NUnit/tests/nunit.uikit.tests.dll +0 -0
  254. data/lib/lib/NUnit/tests/nunit.util.tests.dll +0 -0
  255. data/lib/lib/NUnit/tests/test-assembly.dll +0 -0
  256. data/lib/lib/NUnit/tests/test-utilities.dll +0 -0
  257. data/lib/lib/NUnit/tests/timing-tests.dll +0 -0
  258. data/lib/open.bat +10 -0
  259. data/lib/settings/LOCAL.settings +29 -0
  260. data/lib/settings/SettingsFileReadMe.txt +2 -0
  261. data/lib/settings/UppercuT.config +73 -0
  262. data/lib/test.bat +38 -0
  263. data/lib/zip.bat +23 -0
  264. metadata +328 -0
@@ -0,0 +1,178 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <project name="Compiler" default="go">
3
+ <!-- Project UppercuT - http://projectuppercut.org -->
4
+ <!-- DO NOT EDIT THIS FILE - Add custom tasks in BuildTasks.Custom folder with file by the same name - find out more at http://uppercut.pbwiki.com -->
5
+ <property name="build.config.settings" value="__NONE__" overwrite="false" />
6
+ <include buildfile="${build.config.settings}" if="${file::exists(build.config.settings)}" />
7
+ <property name="file.current.no_extension" value="compile" />
8
+ <property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
9
+ <property name="path.to.toplevel" value=".." />
10
+ <property name="folder.build_scripts" value="build" overwrite="false" />
11
+ <property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
12
+ <property name="dirs.build_scripts_custom" value="${dirs.current}\${path.to.toplevel}\${folder.build_scripts_custom}" />
13
+ <property name="folder.code_build" value="build_output" overwrite="false" />
14
+ <property name="dirs.build" value="${dirs.current}\${path.to.toplevel}\${folder.code_build}" />
15
+ <property name="folder.documentation" value="docs" overwrite="false" />
16
+ <property name="dirs.docs" value="${dirs.current}\${path.to.toplevel}\${folder.documentation}" />
17
+ <property name="folder.database" value="__DATABASE_FOLDER_NAME__" overwrite="false" />
18
+ <property name="dirs.db" value="${dirs.current}\${path.to.toplevel}\${folder.database}" />
19
+ <property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
20
+ <property name="folder.app.drop" value="${project.name}" overwrite="false" />
21
+ <property name="path_to_solution" value="." overwrite="false" />
22
+ <property name="microsoft.framework" value="net-3.5" overwrite="false" />
23
+ <property name="msbuild.configuration" value="Release" overwrite="false" />
24
+ <property name="msbuild.platform" value="Any CPU" overwrite="false" />
25
+ <property name="msbuild.override_output_path" value="true" overwrite="false" />
26
+ <property name="msbuild.outputpath" value="${dirs.build}\${folder.app.drop}" overwrite="false" />
27
+ <property name="solution.path" value="${dirs.current}\${path.to.toplevel}\${path_to_solution}\${project.name}.sln" />
28
+ <property name="solution.path" value="${dirs.current}\${path.to.toplevel}\${path_to_solution}\${project.name}.vbp" if="${microsoft.framework =='vb6'}" />
29
+ <property name="nant.settings.currentframework" value="net-3.5" if="${microsoft.framework !='vb6'}" />
30
+ <property name="framework.multitargeting" value="false" />
31
+ <property name="framework.multitargeting.delimiter" value="," />
32
+ <property name="file.custom.step.before" value="${dirs.build_scripts_custom}\${file.current.no_extension}.pre.step" />
33
+ <property name="file.custom.step.after" value="${dirs.build_scripts_custom}\${file.current.no_extension}.post.step" />
34
+ <property name="file.custom.step.replace" value="${dirs.build_scripts_custom}\${file.current.no_extension}.replace.step" />
35
+ <property name="is.replaced" value="false" />
36
+ <property name="fail.build.on.error" value="true" />
37
+
38
+ <target name="go" depends="run_tasks" />
39
+
40
+ <target name="run_tasks">
41
+ <echo message="Running ${project::get-name()} tasks." />
42
+ <call target="prepare" if="${target::exists('prepare')}" />
43
+ <call target="check_for_multitargeting_and_set_nant_framework_to_last" if="${target::exists('check_for_multitargeting_and_set_nant_framework_to_last')}" />
44
+ <call target="custom_tasks_before" if="${target::exists('custom_tasks_before')}" />
45
+ <call target="custom_tasks_replace" if="${target::exists('custom_tasks_replace')}" />
46
+ <call target="run_normal_tasks" if="${not is.replaced}" />
47
+ <call target="custom_tasks_after" if="${target::exists('custom_tasks_after')}" />
48
+ </target>
49
+
50
+ <target name="run_normal_tasks"
51
+ depends="error_check, build_code, copy_documentation, copy_db"
52
+ description="Compiling project." />
53
+
54
+ <target name="custom_tasks_before">
55
+ <echo message="Running custom tasks if ${file.custom.step.before} exists." />
56
+ <nant buildfile="${file.custom.step.before}" inheritall="true" if="${file::exists(file.custom.step.before)}" failonerror="${fail.build.on.error}" />
57
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.before + '.ps1')}" failonerror="${fail.build.on.error}">
58
+ <arg value="${path::get-full-path(file.custom.step.before + '.ps1')}" />
59
+ </exec>
60
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.before + '.rb')}" failonerror="${fail.build.on.error}">
61
+ <arg value="${path::get-full-path(file.custom.step.before + '.rb')}" />
62
+ </exec>
63
+ </target>
64
+
65
+ <target name="custom_tasks_replace">
66
+ <echo message="Running custom tasks instead of normal tasks if ${file.custom.step.replace} exists." />
67
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace)}" />
68
+ <nant buildfile="${file.custom.step.replace}" inheritall="true" if="${file::exists(file.custom.step.replace)}" failonerror="${fail.build.on.error}" />
69
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.ps1')}" />
70
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.replace + '.ps1')}" failonerror="${fail.build.on.error}" >
71
+ <arg value="${path::get-full-path(file.custom.step.replace + '.ps1')}" />
72
+ </exec>
73
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.rb')}" />
74
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.replace + '.rb')}" failonerror="${fail.build.on.error}" >
75
+ <arg value="${path::get-full-path(file.custom.step.replace + '.rb')}" />
76
+ </exec>
77
+ </target>
78
+
79
+ <target name="error_check">
80
+ <fail message="You must fill out the project.name, repository.path, and company.name settings in the settings\UppercuT.config file. Please do that and retry the build."
81
+ if="${project.name=='__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__'}" />
82
+ </target>
83
+
84
+ <target name="check_for_multitargeting_and_set_nant_framework_to_last">
85
+ <if test="${string::contains(microsoft.framework,',')}">
86
+ <echo message="You want to multi target, eh? You passed a comma into the framework: ${microsoft.framework}" />
87
+ <property name="framework.multitargeting" value="true" />
88
+ <property name="framework.multitargeting.delimiter" value="," />
89
+ <foreach item="String" in="${microsoft.framework}" delim="," property="framework.to.use">
90
+ <property name="nant.settings.currentframework" value="${string::trim(framework.to.use)}" />
91
+ </foreach>
92
+ </if>
93
+ <if test="${string::contains(microsoft.framework,';')}">
94
+ <echo message="You want to multi target, eh? You passed a semicolon into the framework: ${microsoft.framework}" />
95
+ <property name="framework.multitargeting" value="true" />
96
+ <property name="framework.multitargeting.delimiter" value=";" />
97
+ <foreach item="String" in="${microsoft.framework}" delim=";" property="framework.to.use">
98
+ <property name="nant.settings.currentframework" value="${string::trim(framework.to.use)}" />
99
+ </foreach>
100
+ </if>
101
+ </target>
102
+
103
+ <target name="build_code" depends="" description="Building Library">
104
+ <echo message="Compiling ${solution.path}."/>
105
+ <call target="build_dotNET_code" if="${microsoft.framework !='vb6'}" />
106
+ <call target="build_vb6_code" if="${microsoft.framework =='vb6'}" />
107
+ </target>
108
+
109
+ <target name="build_dotNET_code" >
110
+ <if test="${framework.multitargeting}">
111
+ <foreach item="String" in="${microsoft.framework}" delim="${framework.multitargeting.delimiter}" property="framework.specific">
112
+ <property name="msbuild.outputpath" value="${dirs.build}\${folder.app.drop}\${framework.specific}" />
113
+ <property name="microsoft.framework.specific" value="${string::trim(framework.specific)}" />
114
+ <call target="build_dotNet_code_framework" />
115
+ </foreach>
116
+ </if>
117
+ <if test="${not framework.multitargeting}">
118
+ <property name="microsoft.framework.specific" value="${string::trim(microsoft.framework)}" />
119
+ <call target="build_dotNet_code_framework" />
120
+ </if>
121
+ </target>
122
+
123
+ <target name="build_dotNet_code_framework">
124
+ <echo message="Building on ${framework::get-version(microsoft.framework.specific)}" />
125
+ <!-- nant is retarded - I had to have two of these instead of throwing an if on the outputpath -->
126
+ <if test="${msbuild.override_output_path}">
127
+ <msbuild project="${solution.path}" verbosity="minimal">
128
+ <property name="Configuration" value="${msbuild.configuration}" />
129
+ <property name="OutputPath" value="${msbuild.outputpath}" />
130
+ <property name="Platform" value="${msbuild.platform}" />
131
+ <property name="TargetFrameworkVersion" value="v${framework::get-version(microsoft.framework.specific)}" />
132
+ <property name="ToolsVersion" value="${framework::get-version(microsoft.framework.specific)}" />
133
+ </msbuild>
134
+ </if>
135
+ <if test="${not msbuild.override_output_path}">
136
+ <msbuild project="${solution.path}" verbosity="minimal">
137
+ <property name="Configuration" value="${msbuild.configuration}" />
138
+ <property name="Platform" value="${msbuild.platform}" />
139
+ <property name="TargetFrameworkVersion" value="v${framework::get-version(microsoft.framework.specific)}" />
140
+ <property name="ToolsVersion" value="${framework::get-version(microsoft.framework.specific)}" />
141
+ </msbuild>
142
+ </if>
143
+ </target>
144
+
145
+ <target name="build_vb6_code">
146
+ <vb6 project="${solution.path}" outdir="${dirs.build}\${folder.app.drop}" />
147
+ </target>
148
+
149
+ <target name="copy_documentation">
150
+ <echo message="Building documentation files to ${dirs.build}\${folder.documentation}."/>
151
+ <copy todir="${dirs.build}\${folder.documentation}">
152
+ <fileset basedir="${dirs.docs}">
153
+ <include name="**/*.*" />
154
+ </fileset>
155
+ </copy>
156
+ </target>
157
+
158
+ <target name="copy_db">
159
+ <echo message="Building database files to ${dirs.build}\${folder.database}."/>
160
+ <copy todir="${dirs.build}\${folder.database}">
161
+ <fileset basedir="${dirs.db}">
162
+ <include name="**/*.*" />
163
+ </fileset>
164
+ </copy>
165
+ </target>
166
+
167
+ <target name="custom_tasks_after">
168
+ <echo message="Running custom tasks if ${file.custom.step.after} exists." />
169
+ <nant buildfile="${file.custom.step.after}" inheritall="true" if="${file::exists(file.custom.step.after)}" failonerror="${fail.build.on.error}" />
170
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.after + '.ps1')}" failonerror="${fail.build.on.error}" >
171
+ <arg value="${path::get-full-path(file.custom.step.after + '.ps1')}" />
172
+ </exec>
173
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.after + '.rb')}" failonerror="${fail.build.on.error}" >
174
+ <arg value="${path::get-full-path(file.custom.step.after + '.rb')}" />
175
+ </exec>
176
+ </target>
177
+
178
+ </project>
@@ -0,0 +1,41 @@
1
+ @echo off
2
+
3
+ ::Project UppercuT - http://uppercut.googlecode.com
4
+ ::No edits to this file are required - http://uppercut.pbwiki.com
5
+
6
+ if '%1' == '' goto usage
7
+ if '%2' == '' goto usage
8
+ if '%3' NEQ '' goto usage
9
+ if '%1' == '/?' goto usage
10
+ if '%1' == '-?' goto usage
11
+ if '%1' == '?' goto usage
12
+ if '%1' == '/help' goto usage
13
+
14
+ SET step.name=%1
15
+ SET step.type=%2
16
+
17
+
18
+ SET DIR=%~d0%~p0%
19
+ SET NANT="%DIR%..\lib\Nant\nant.exe"
20
+ SET build.config.settings="%DIR%..\settings\UppercuT.config"
21
+
22
+ %NANT% /f:.\customize.build -D:build.config.settings=%build.config.settings% -D:customize.step.name=%step.name% -D:customize.step.type=%step.type%
23
+
24
+ if %ERRORLEVEL% NEQ 0 goto errors
25
+
26
+ goto finish
27
+
28
+ :usage
29
+ echo.
30
+ echo Usage: customize.bat stepName customizeType
31
+ echo stepName is the name of the item
32
+ echo customizeType is "pre" "post" or "replace"
33
+ echo .
34
+ echo Example: customize package.step post
35
+ echo.
36
+ goto finish
37
+
38
+ :errors
39
+ EXIT /B %ERRORLEVEL%
40
+
41
+ :finish
@@ -0,0 +1,76 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <project name="Customize UppercuT" default="go">
3
+ <!-- Project UppercuT - http://projectuppercut.org -->
4
+ <!-- DO NOT EDIT THIS FILE - Add custom tasks in BuildTasks.Custom folder with file by the same name - find out more at http://uppercut.pbwiki.com -->
5
+ <property name="build.config.settings" value="__NONE__" overwrite="false" />
6
+ <include buildfile="${build.config.settings}" if="${file::exists(build.config.settings)}" />
7
+ <property name="file.current.no_extension" value="customize" />
8
+ <property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
9
+ <property name="path.to.toplevel" value=".." />
10
+ <property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
11
+ <property name="dirs.build_scripts_custom" value="${dirs.current}\${path.to.toplevel}\${folder.build_scripts_custom}" />
12
+ <property name="customize.step.name" value="__REPLACE__" overwrite="false" />
13
+ <property name="customize.step.type" value="__REPLACE__" overwrite="false" />
14
+ <property name="customize.step.type.lowered" value="${string::to-lower(customize.step.type)}" />
15
+ <property name="file.customize.template" value="item.template" />
16
+ <property name="file.customized" value="" readonly="false" />
17
+ <property name="path.to.custom_file" value="-1" />
18
+ <property name="path.to.custom_file" value="" if="${file::exists(customize.step.name)}" />
19
+
20
+ <target name="go" depends="run_tasks, report_finish_time" />
21
+
22
+ <target name="run_tasks">
23
+ <echo message="Running ${project::get-name()} to create custom tasks." />
24
+ <call target="prepare" if="${target::exists('prepare')}" />
25
+ <call target="run_normal_tasks" />
26
+ </target>
27
+
28
+ <target name="run_normal_tasks"
29
+ depends="error_check, customize"
30
+ description="Setting up a customize file for UppercuT." />
31
+
32
+ <target name="error_check">
33
+ <echo message="Error checking - the input for customize.step.name is '${customize.step.name}' and the input for customize.step.type is '${customize.step.type}'." />
34
+ <fail message="Please send in the arguments for what step to customize and what type of customization. Call customize.bat /? for usage instructions."
35
+ if="${customize.step.name=='__REPLACE__' or customize.step.type =='__REPLACE__'}" />
36
+ <fail message="The type of customization can only be pre, post, or replace."
37
+ unless="${customize.step.type.lowered =='pre' or customize.step.type.lowered =='post' or customize.step.type.lowered =='replace'}" />
38
+ </target>
39
+
40
+ <target name="customize">
41
+ <property name="file.customized" value="${path::get-file-name-without-extension(customize.step.name)}.${customize.step.type.lowered}${path::get-extension(customize.step.name)}" />
42
+ <echo message="Creating a customized step called ${file.customized}." />
43
+ <call target="resolve_path_to_custom_file" />
44
+ <fail message="${file.customized} already exists in ${dirs.build_scripts_custom}. Will not run." if="${file::exists(dirs.build_scripts_custom + '\' + file.customized)}" />
45
+ <call target="create_file_if_not_already_existing" />
46
+ <call target="replace_template_values" />
47
+ </target>
48
+
49
+ <target name="resolve_path_to_custom_file">
50
+ <property name="path.to.custom_file" value="\analyzers" if="${file::exists('analyzers\' + customize.step.name)}" />
51
+ <property name="path.to.custom_file" value="\versioners" if="${file::exists('versioners\' + customize.step.name)}" />
52
+ <fail message="${customize.step.name} does not exist in anywhere in the build directory." if="${path.to.custom_file=='-1'}" />
53
+ <property name="dirs.build_scripts_custom" value="${dirs.build_scripts_custom}${path.to.custom_file}" />
54
+ <echo message="Found ${customize.step.name} in '${dirs.current}\${path.to.custom_file}'. This means the custom path is going to be ${dirs.build_scripts_custom}." />
55
+ </target>
56
+
57
+ <target name="create_file_if_not_already_existing">
58
+ <copy file="customizers\${file.customize.template}" tofile="${dirs.build_scripts_custom}\${file.customized}" if="${not file::exists(dirs.build_scripts_custom + '\' + file.customized)}" />
59
+ </target>
60
+
61
+ <target name="replace_template_values">
62
+ <xmlpoke
63
+ file="${dirs.build_scripts_custom}\${file.customized}"
64
+ xpath="/project/@name"
65
+ value="CUSTOM ${string::to-upper(customize.step.type)} ${string::to-upper(path::get-file-name-without-extension(customize.step.name))}" />
66
+ <xmlpoke
67
+ file="${dirs.build_scripts_custom}\${file.customized}"
68
+ xpath="/project/property[@name = 'path.to.toplevel']/@value"
69
+ value="..\.." if="${path.to.custom_file !=''}" />
70
+ </target>
71
+
72
+ <target name="report_finish_time">
73
+ <echo message="Customize finished at ${datetime::now()}. Please make any customizations you need to now to ${dirs.build_scripts_custom}\${file.customized} and don't forget to add it to source control." />
74
+ </target>
75
+
76
+ </project>
@@ -0,0 +1,50 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <project name="__REPLACE__" default="go">
3
+ <!-- Project UppercuT - http://projectuppercut.org -->
4
+ <property name="build.config.settings" value="__NONE__" overwrite="false" />
5
+ <include buildfile="${build.config.settings}" if="${file::exists(build.config.settings)}" />
6
+ <property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
7
+ <property name="path.to.toplevel" value=".." />
8
+ <property name="folder.build_scripts" value="build" overwrite="false" />
9
+ <property name="dirs.build_scripts" value="${dirs.current}\${path.to.toplevel}\${folder.build_scripts}" />
10
+ <property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
11
+ <property name="dirs.build_scripts_custom" value="${dirs.current}\${path.to.toplevel}\${folder.build_scripts_custom}" />
12
+ <property name="folder.code_build" value="build_output" overwrite="false" />
13
+ <property name="dirs.build" value="${dirs.current}\${path.to.toplevel}\${folder.code_build}" />
14
+ <property name="folder.code_drop" value="code_drop" overwrite="false" />
15
+ <property name="dirs.drop" value="${dirs.current}\${path.to.toplevel}\${folder.code_drop}" overwrite="false" />
16
+ <property name="folder.app.drop" value="${project.name}" overwrite="false" />
17
+ <property name="folder.database" value="__DATABASE_FOLDER_NAME__" overwrite="false" />
18
+ <property name="dirs.database" value="${dirs.current}\${path.to.toplevel}\${folder.database}" overwrite="false" />
19
+ <property name="folder.reports" value="${project.name}.Reports" overwrite="false" />
20
+ <property name="dirs.reports" value="${dirs.current}\${path.to.toplevel}\${folder.reports}" overwrite="false" />
21
+ <property name="folder.file_server" value="file.server" overwrite="false" />
22
+ <property name="dirs.file_server" value="${dirs.current}\${path.to.toplevel}\${folder.file_server}" overwrite="false" />
23
+ <property name="folder.environment_files" value="environment.files" overwrite="false" />
24
+ <property name="dirs.environment_files" value="${dirs.current}\${path.to.toplevel}\${folder.environment_files}" overwrite="false" />
25
+ <property name="folder.deployment" value="deployment" overwrite="false" />
26
+ <property name="dirs.deployment" value="${dirs.current}\${path.to.toplevel}\${folder.deployment}" overwrite="false" />
27
+ <property name="folder.settings" value="settings" overwrite="false" />
28
+ <property name="dirs.settings" value="${dirs.current}\${path.to.toplevel}\${folder.settings}" overwrite="false" />
29
+ <property name="folder.documentation" value="docs" overwrite="false" />
30
+ <property name="dirs.docs" value="${dirs.current}\${path.to.toplevel}\${folder.documentation}" overwrite="false" />
31
+ <property name="folder.references" value="lib" overwrite="false" />
32
+ <property name="dirs.lib" value="${dirs.current}\${path.to.toplevel}\${folder.references}" overwrite="false" />
33
+
34
+ <target name="go" depends="run_tasks" />
35
+
36
+ <target name="run_tasks">
37
+ <!-- INSERT YOUR TASKS HERE OR CALL OUT TO OTHER TASKS -->
38
+ <!-- Sample provided below that you can customize -->
39
+ </target>
40
+
41
+ <!--<target name="documentation">
42
+ <echo message="Packaging documentation files to ${dirs.drop}\${folder.documentation}."/>
43
+ <copy todir="${dirs.drop}\${folder.documentation}">
44
+ <fileset basedir="${dirs.build}\${folder.documentation}">
45
+ <include name="**/*.*" />
46
+ </fileset>
47
+ </copy>
48
+ </target>-->
49
+
50
+ </project>
@@ -0,0 +1,164 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <project name="UppercuTBuild" default="go">
3
+ <!-- Project UppercuT - http://projectuppercut.org -->
4
+ <!-- DO NOT EDIT THIS FILE - Add custom tasks in BuildTasks.Custom folder with file by the same name - find out more at http://uppercut.pbwiki.com -->
5
+ <property name="build.config.settings" value="__NONE__" overwrite="false" />
6
+ <include buildfile="${build.config.settings}" if="${file::exists(build.config.settings)}" />
7
+ <property name="file.current.no_extension" value="default" />
8
+ <property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
9
+ <property name="path.to.toplevel" value=".." />
10
+ <property name="folder.build_scripts" value="build" overwrite="false" />
11
+ <property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
12
+ <property name="dirs.build_scripts_custom" value="${dirs.current}\${path.to.toplevel}\${folder.build_scripts_custom}" />
13
+ <property name="folder.code_build" value="build_output" overwrite="false" />
14
+ <property name="dirs.build" value="${dirs.current}\${path.to.toplevel}\${folder.code_build}" />
15
+ <property name="folder.code_drop" value="code_drop" overwrite="false" />
16
+ <property name="dirs.drop" value="${dirs.current}\${path.to.toplevel}\${folder.code_drop}" overwrite="false" />
17
+ <property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
18
+ <property name="repository.path" value="__REPOSITORY_PATH__" overwrite="false" />
19
+ <property name="company.name" value="__COMPANY_NAME__" overwrite="false" />
20
+ <property name="source_control_type" value="svn" overwrite="false" />
21
+ <property name="version.uppercut" value="0" />
22
+ <property name="version.revision" value="0" />
23
+ <property name="version.hash" value="${version.revision}" overwrite="false" />
24
+ <property name="version.build" value="0" />
25
+ <property name="allow.powershell.unrestricted" value="false" overwrite="false" />
26
+ <property name="file.uppercut.assembly" value="uppercut.tasks.dll" />
27
+ <property name="path.uppercut.assembly" value="${dirs.current}\${file.uppercut.assembly}" />
28
+ <property name="file.custom.step.before" value="${dirs.build_scripts_custom}\${file.current.no_extension}.pre.build" />
29
+ <property name="file.custom.step.after" value="${dirs.build_scripts_custom}\${file.current.no_extension}.post.build" />
30
+ <property name="file.custom.step.replace" value="${dirs.build_scripts_custom}\${file.current.no_extension}.replace.build" />
31
+ <property name="is.replaced" value="false" />
32
+ <property name="fail.build.on.error" value="true" />
33
+
34
+ <target name="go" depends="load_uppercut_assemblies, allow_powershell_unrestricted, report_uppercut_version, run_tasks, report_finish_time" />
35
+
36
+ <target name="run_tasks">
37
+ <echo message="Running ${project::get-name()} tasks." />
38
+ <call target="prepare" if="${target::exists('prepare')}" />
39
+ <call target="custom_tasks_before" if="${target::exists('custom_tasks_before')}" />
40
+ <call target="custom_tasks_replace" if="${target::exists('custom_tasks_replace')}" />
41
+ <call target="run_normal_tasks" if="${not is.replaced}" />
42
+ <call target="custom_tasks_after" if="${target::exists('custom_tasks_after')}" />
43
+ </target>
44
+
45
+ <target name="run_normal_tasks"
46
+ depends="error_check, build"
47
+ description="Building with UppercuT default.build." />
48
+
49
+ <target name="custom_tasks_before">
50
+ <echo message="Running custom tasks if ${file.custom.step.before} exists." />
51
+ <nant buildfile="${file.custom.step.before}" inheritall="true" if="${file::exists(file.custom.step.before)}" failonerror="${fail.build.on.error}" />
52
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.before + '.ps1')}" failonerror="${fail.build.on.error}">
53
+ <arg value="${path::get-full-path(file.custom.step.before + '.ps1')}" />
54
+ </exec>
55
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.before + '.rb')}" failonerror="${fail.build.on.error}">
56
+ <arg value="${path::get-full-path(file.custom.step.before + '.rb')}" />
57
+ </exec>
58
+ </target>
59
+
60
+ <target name="custom_tasks_replace">
61
+ <echo message="Running custom tasks instead of normal tasks if ${file.custom.step.replace} exists." />
62
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace)}" />
63
+ <nant buildfile="${file.custom.step.replace}" inheritall="true" if="${file::exists(file.custom.step.replace)}" failonerror="${fail.build.on.error}" />
64
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.ps1')}" />
65
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.replace + '.ps1')}" failonerror="${fail.build.on.error}" >
66
+ <arg value="${path::get-full-path(file.custom.step.replace + '.ps1')}" />
67
+ </exec>
68
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.rb')}" />
69
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.replace + '.rb')}" failonerror="${fail.build.on.error}" >
70
+ <arg value="${path::get-full-path(file.custom.step.replace + '.rb')}" />
71
+ </exec>
72
+ </target>
73
+
74
+ <target name="prepare">
75
+ <echo message="Removing and adding ${dirs.build}."/>
76
+ <delete dir="${dirs.build}" failonerror="false" />
77
+ <mkdir dir="${dirs.build}" failonerror="false" />
78
+ </target>
79
+
80
+ <target name="error_check">
81
+ <fail message="You must fill out the project.name, repository.path, and company.name settings in the settings\UppercuT.config file. Please do that and retry the build."
82
+ if="${project.name=='__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__' or repository.path=='__REPOSITORY_PATH__' or company.name=='__COMPANY_NAME__'}" />
83
+ </target>
84
+
85
+ <target name="build">
86
+ <call target="get_revision" />
87
+ <call target="get_build_number" />
88
+ <call target="get_drop_directory" />
89
+
90
+ <nant buildfile="${dirs.current}\policyChecks.step" inheritall="true" />
91
+ <nant buildfile="${dirs.current}\versionBuilder.step" inheritall="true" />
92
+ <nant buildfile="${dirs.current}\generateBuildInfo.step" inheritall="true" />
93
+ <nant buildfile="${dirs.current}\compile.step" inheritall="true" />
94
+ <nant buildfile="${dirs.current}\environmentBuilder.step" inheritall="true" />
95
+ <nant buildfile="${dirs.current}\analyze.step" inheritall="true" />
96
+ <nant buildfile="${dirs.current}\package.step" inheritall="true" />
97
+ </target>
98
+
99
+ <target name="get_revision">
100
+ <nant buildfile="${dirs.current}\versioners\svn.step" inheritall="true" if="${source_control_type=='svn'}" failonerror="false" />
101
+ <nant buildfile="${dirs.current}\versioners\tfs.step" inheritall="true" if="${source_control_type=='tfs'}" failonerror="false" />
102
+ <nant buildfile="${dirs.current}\versioners\git.step" inheritall="true" if="${source_control_type=='git'}" failonerror="false" />
103
+ <nant buildfile="${dirs.current}\versioners\hg.step" inheritall="true" if="${source_control_type=='hg'}" failonerror="false" />
104
+ <!--<nant buildfile="${dirs.current}\versioners\vault.step" inheritall="true" if="${source_control_type=='vault'}" />-->
105
+ <!--<nant buildfile="${dirs.current}\versioners\vss.step" inheritall="true" if="${source_control_type=='vss'}" />-->
106
+
107
+ <property name="version.revision" value="${environment::get-variable('uc.app.revision')}" if="${environment::variable-exists('uc.app.revision')}" />
108
+ <property name="version.hash" value="${environment::get-variable('uc.app.revision.hash')}" if="${environment::variable-exists('uc.app.revision.hash')}" />
109
+ <property name="version.hash" value="${version.revision}" if="${version.hash == '0'}" />
110
+ <echo message="Using revision number: ${version.revision} and hash: ${version.hash}." />
111
+ </target>
112
+
113
+ <target name="get_build_number">
114
+ <property name="version.build" value="${environment::get-variable('CCNetNumericLabel')}" if="${environment::variable-exists('CCNetNumericLabel')}" />
115
+ <property name="version.build" value="${environment::get-variable('BUILD_NUMBER')}" if="${environment::variable-exists('BUILD_NUMBER')}" />
116
+ <echo message="Using build number ${version.build}." />
117
+ </target>
118
+
119
+ <target name="get_drop_directory">
120
+ <property name="dirs.drop" value="${environment::get-variable('CCNetArtifactDirectory')}\b${version.build}-r${version.revision}" if="${environment::variable-exists('CCNetArtifactDirectory')}" />
121
+ <!--Point TeamCity at code_drop for an artifact directory. It will automatically save the files. -->
122
+ <echo message="Compiled code drop directory will be ${path::get-full-path(dirs.drop)}." />
123
+ </target>
124
+
125
+ <target name="custom_tasks_after">
126
+ <echo message="Running custom tasks if ${file.custom.step.after} exists." />
127
+ <nant buildfile="${file.custom.step.after}" inheritall="true" if="${file::exists(file.custom.step.after)}" failonerror="${fail.build.on.error}" />
128
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.after + '.ps1')}" failonerror="${fail.build.on.error}" >
129
+ <arg value="${path::get-full-path(file.custom.step.after + '.ps1')}" />
130
+ </exec>
131
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.after + '.rb')}" failonerror="${fail.build.on.error}" >
132
+ <arg value="${path::get-full-path(file.custom.step.after + '.rb')}" />
133
+ </exec>
134
+ </target>
135
+
136
+ <target name="report_finish_time">
137
+ <echo message="Build finished at ${datetime::now()} with UppercuT version ${version.uppercut}." />
138
+ </target>
139
+
140
+ <target name="report_uppercut_version">
141
+ <xmlpeek
142
+ file="UppercuT.xml"
143
+ xpath="/uppercut/version"
144
+ property="version.uppercut"
145
+ failonerror="false" />
146
+ <echo message="Using UppercuT version: ${version.uppercut}." />
147
+ </target>
148
+
149
+ <target name="load_uppercut_assemblies">
150
+ <loadtasks assembly="${path.uppercut.assembly}" if="${file::exists(path.uppercut.assembly)}" />
151
+ </target>
152
+
153
+ <target name="allow_powershell_unrestricted">
154
+ <!-- powershell 1.0 -->
155
+ <exec program="powershell.exe" if="${allow.powershell.unrestricted}" failonerror="false">
156
+ <arg value="set-executionpolicy unrestricted" />
157
+ </exec>
158
+ <!-- powershell 2.0 -->
159
+ <exec program="powershell.exe" if="${allow.powershell.unrestricted}" failonerror="false">
160
+ <arg value="set-executionpolicy unrestricted -force -scope CurrentUser" />
161
+ </exec>
162
+ </target>
163
+
164
+ </project>