uppercutbuild 0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>