uppercutbuild 0.9.0.340 → 0.9.0.345.20100805
Sign up to get free protection for your applications and to get access to all the features.
- data/docs/README +5 -3
- data/lib/build/UppercuT.xml +1 -1
- data/lib/build/analyzers/mbunit2.test.step +10 -8
- data/lib/build/analyzers/ncover.step +13 -11
- data/lib/build/analyzers/nunit.test.step +43 -26
- data/lib/build/compile.step +3 -10
- data/lib/build/gemsPrepare.step +16 -3
- data/lib/build/uppercut.dll +0 -0
- data/lib/build/uppercut.tasks.dll +0 -0
- data/lib/gems/__RENAME__.gemspec.rename +1 -1
- metadata +6 -5
data/docs/README
CHANGED
@@ -41,9 +41,9 @@ This is the best way to get to the bleeding edge of what we are doing.
|
|
41
41
|
1. Clone the source down to your machine.
|
42
42
|
`git clone git://github.com/chucknorris/uppercut.git`
|
43
43
|
2. Type `cd uppercut`
|
44
|
-
3. Type `git config core.autocrlf
|
44
|
+
3. Type `git config core.autocrlf false` to set line endings to auto convert for this repository
|
45
45
|
4. Type `git status`. You should not see any files to change.
|
46
|
-
5. Run `build.bat`. NOTE: You must have git on the path (open a regular command line and type git).
|
46
|
+
5. Run `build.bat`. NOTE: You must have git on the path (open a regular command line and type git).
|
47
47
|
|
48
48
|
|
49
49
|
# REQUIREMENTS
|
@@ -55,7 +55,9 @@ Donations Accepted - If you enjoy using this product or it has saved you time an
|
|
55
55
|
It helps keep to the product updated, pays for site hosting, etc. https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4410250
|
56
56
|
|
57
57
|
# RELEASE NOTES
|
58
|
-
=0.9.0.
|
58
|
+
=0.9.0.345=
|
59
|
+
* Fixed general compile issues related to multi-targeting changes from last release (r345)
|
60
|
+
* Gems by default are now versioned with datestamp on the end (YYYYMMDD) (r342)
|
59
61
|
* Changed the default test framework to NUnit. (r340)
|
60
62
|
* Changed 'uppercutbuild install to 'uppercutbuild init' (r339)
|
61
63
|
|
data/lib/build/UppercuT.xml
CHANGED
@@ -25,17 +25,19 @@
|
|
25
25
|
<property name="fail.build.on.error" value="true" />
|
26
26
|
|
27
27
|
<assemblyfileset id="assemblies.assemblyfileset.testing" basedir="${dirs.build.code}\" >
|
28
|
-
<exclude name="
|
29
|
-
<exclude name="
|
30
|
-
<exclude name="
|
31
|
-
<
|
32
|
-
<include name="
|
28
|
+
<exclude name="lib\**" />
|
29
|
+
<exclude name="**\*Database*dll" />
|
30
|
+
<exclude name="**\*.Integration*dll" />
|
31
|
+
<exclude name="**\TestFu.dll" />
|
32
|
+
<include name="**\*Test*dll" />
|
33
|
+
<include name="**\*.Spec*dll" />
|
33
34
|
</assemblyfileset>
|
34
35
|
|
35
36
|
<assemblyfileset id="assemblies.assemblyfileset.testing.all" basedir="${dirs.build.code}\" >
|
36
|
-
<exclude name="
|
37
|
-
<
|
38
|
-
<include name="
|
37
|
+
<exclude name="lib\**" />
|
38
|
+
<exclude name="**\TestFu.dll" />
|
39
|
+
<include name="**\*Test*dll" />
|
40
|
+
<include name="**\*.Spec*dll" />
|
39
41
|
</assemblyfileset>
|
40
42
|
|
41
43
|
<target name="go" depends="run_tasks" />
|
@@ -34,7 +34,8 @@
|
|
34
34
|
<property name="tests.excluded_categories.comma_separated" value="Database,Integration,Slow,NotWorking" overwrite="false" />
|
35
35
|
<property name="test.args" value="" />
|
36
36
|
<property name="test.args" value="/rt:Text /rnf:mbUnit /rf:"${dirs.ncover_results}" /ec:${tests.excluded_categories.comma_separated}" if="${test.framework=='mbunit2'}" />
|
37
|
-
<property name="test.args" value="/xml:"${dirs.ncover_results}\nunit-results.xml" /nologo /
|
37
|
+
<property name="test.args" value="/xml:"${dirs.ncover_results}\nunit-results.xml" /nologo /exclude:${tests.excluded_categories.comma_separated}" if="${test.framework=='nunit'}" />
|
38
|
+
<!--property name="test.args" value="/xml:"${dirs.ncover_results}\nunit-results.xml" /nologo /framework=${microsoft.framework} /exclude:${tests.excluded_categories.comma_separated}" if="${test.framework=='nunit'}" /-->
|
38
39
|
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}\${file.current.no_extension}.pre.step" />
|
39
40
|
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}\${file.current.no_extension}.post.step" />
|
40
41
|
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}\${file.current.no_extension}.replace.step" />
|
@@ -94,15 +95,16 @@
|
|
94
95
|
<foreach item="File" property="dll.filename">
|
95
96
|
<in>
|
96
97
|
<items>
|
97
|
-
<exclude name="${dirs.build.code}
|
98
|
-
<exclude name="${dirs.build.code}
|
99
|
-
<exclude name="${dirs.build.code}
|
100
|
-
<
|
101
|
-
<include name="${dirs.build.code}
|
98
|
+
<exclude name="${dirs.build.code}\lib\**" />
|
99
|
+
<exclude name="${dirs.build.code}\**\*Database*dll" />
|
100
|
+
<exclude name="${dirs.build.code}\**\*.Integration*dll" />
|
101
|
+
<exclude name="${dirs.build.code}\**\TestFu.dll" />
|
102
|
+
<include name="${dirs.build.code}\**\*Test*dll" />
|
103
|
+
<include name="${dirs.build.code}\**\*Spec*dll" />
|
102
104
|
</items>
|
103
105
|
</in>
|
104
106
|
<do>
|
105
|
-
<property name="dll.names" value="${dll.names + ' ' + path::get-
|
107
|
+
<property name="dll.names" value="${dll.names + ' ' + string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\','') + ''}" />
|
106
108
|
</do>
|
107
109
|
</foreach>
|
108
110
|
|
@@ -125,10 +127,10 @@
|
|
125
127
|
failonerror="false"
|
126
128
|
verbose="true">
|
127
129
|
<assemblies basedir="${dirs.build.code}">
|
128
|
-
<exclude name="${dirs.build.code}
|
129
|
-
<exclude name="${dirs.build.code}
|
130
|
-
<exclude name="${dirs.build.code}
|
131
|
-
<include name="${dirs.build.code}
|
130
|
+
<exclude name="${dirs.build.code}\**\TestFu.dll" />
|
131
|
+
<exclude name="${dirs.build.code}\**\*Test*dll" />
|
132
|
+
<exclude name="${dirs.build.code}\**\*Spec*dll" />
|
133
|
+
<include name="${dirs.build.code}\**\${project.name}*.dll" />
|
132
134
|
</assemblies>
|
133
135
|
</ncover>
|
134
136
|
</target>
|
@@ -22,9 +22,13 @@
|
|
22
22
|
<property name="dirs.test_results" value="${dirs.build_artifacts}\nunit" overwrite="false" />
|
23
23
|
<property name="file.test_results" value="index" overwrite="false" />
|
24
24
|
<property name="tests.excluded_categories.comma_separated" value="Database,Integration,Slow,NotWorking,Ignore,database,integration,slow,notworking,ignore" overwrite="false" />
|
25
|
-
<property name="test.args" value="/xml="${dirs.test_results}\nunit-results.xml" /nologo
|
25
|
+
<property name="test.args" value="/xml="${dirs.test_results}\nunit-results.xml" /nologo" />
|
26
|
+
<!--property name="test.args" value="/xml="${dirs.test_results}\nunit-results.xml" /nologo /framework=${microsoft.framework}" /-->
|
26
27
|
<property name="test.args.exclude" value="/exclude="${tests.excluded_categories.comma_separated}"" />
|
27
28
|
<property name="app.nunit.console" value="${path::get-full-path(dirs.lib)}\NUnit\nunit-console.exe" overwrite="false" />
|
29
|
+
<property name="dlls.test" value="" />
|
30
|
+
<property name="tests.ran" value="false" />
|
31
|
+
|
28
32
|
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}\${file.current.no_extension}.pre.step" />
|
29
33
|
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}\${file.current.no_extension}.post.step" />
|
30
34
|
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}\${file.current.no_extension}.replace.step" />
|
@@ -89,20 +93,21 @@
|
|
89
93
|
<foreach item="File" property="dll.filename">
|
90
94
|
<in>
|
91
95
|
<items>
|
92
|
-
<exclude name="${dirs.build.code}
|
93
|
-
<exclude name="${dirs.build.code}
|
94
|
-
<exclude name="${dirs.build.code}
|
95
|
-
<
|
96
|
-
<include name="${dirs.build.code}
|
96
|
+
<exclude name="${dirs.build.code}\lib\**" />
|
97
|
+
<exclude name="${dirs.build.code}\**\*Database*dll" />
|
98
|
+
<exclude name="${dirs.build.code}\**\*.Integration*dll" />
|
99
|
+
<exclude name="${dirs.build.code}\**\TestFu.dll" />
|
100
|
+
<include name="${dirs.build.code}\**\*Test*dll" />
|
101
|
+
<include name="${dirs.build.code}\**\*Spec*dll" />
|
97
102
|
</items>
|
98
103
|
</in>
|
99
104
|
<do>
|
100
|
-
<property name="dll.names" value="${dll.names + ' ' + path::get-
|
105
|
+
<property name="dll.names" value="${dll.names + ' ' + string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\','') + ''}" />
|
101
106
|
</do>
|
102
107
|
</foreach>
|
103
108
|
|
104
109
|
<property name="dlls.test" value="${dll.names}" />
|
105
|
-
<echo message="Running
|
110
|
+
<echo message="Running NUnit against these test dlls - ${dlls.test}." />
|
106
111
|
|
107
112
|
<property name="args.test_runner" value="${dlls.test} ${test.args} ${test.args.exclude}" />
|
108
113
|
</target>
|
@@ -113,39 +118,51 @@
|
|
113
118
|
<foreach item="File" property="dll.filename">
|
114
119
|
<in>
|
115
120
|
<items>
|
116
|
-
<exclude name="${dirs.build.code}\
|
117
|
-
<
|
118
|
-
<include name="${dirs.build.code}
|
121
|
+
<exclude name="${dirs.build.code}\lib\**" />
|
122
|
+
<exclude name="${dirs.build.code}\**\TestFu.dll" />
|
123
|
+
<include name="${dirs.build.code}\**\*Test*dll" />
|
124
|
+
<include name="${dirs.build.code}\**\*Spec*dll" />
|
119
125
|
</items>
|
120
126
|
</in>
|
121
127
|
<do>
|
122
|
-
<property name="dll.names" value="${dll.names + ' ' + path::get-
|
128
|
+
<property name="dll.names" value="${dll.names + ' ' + string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\','') + ''}" />
|
123
129
|
</do>
|
124
130
|
</foreach>
|
125
131
|
|
126
132
|
<property name="dlls.test" value="${dll.names}" />
|
127
|
-
<echo message="Running
|
133
|
+
<echo message="Running NUnit against these test dlls - ${dlls.test}." />
|
128
134
|
|
129
135
|
<property name="args.test_runner" value="${dlls.test} ${test.args}" />
|
130
136
|
</target>
|
131
137
|
|
132
138
|
<target name="run_tests" depends="prepare" description="Running Unit Tests">
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
139
|
+
|
140
|
+
<if test="${dlls.test !=''}">
|
141
|
+
<echo message="Running tests using NUnit and putting results in ${dirs.test_results}."/>
|
142
|
+
|
143
|
+
<exec
|
144
|
+
program="${app.nunit.console}"
|
145
|
+
workingdir="${dirs.build.code}"
|
146
|
+
failonerror="true">
|
147
|
+
<arg value="${args.test_runner}" />
|
148
|
+
</exec>
|
149
|
+
<property name="tests.ran" value="true" />
|
150
|
+
|
151
|
+
</if>
|
152
|
+
<if test="${dlls.test ==''}">
|
153
|
+
<echo message="No test dlls to run against" />
|
154
|
+
</if>
|
155
|
+
|
141
156
|
</target>
|
142
157
|
|
143
158
|
<target name="generate_report">
|
144
|
-
<
|
145
|
-
<
|
146
|
-
<
|
147
|
-
|
148
|
-
|
159
|
+
<if test="${tests.ran}">
|
160
|
+
<nunit2report todir="${dirs.test_results}" failonerror="false" >
|
161
|
+
<fileset>
|
162
|
+
<include name="${dirs.test_results}\*-results.xml"/>
|
163
|
+
</fileset>
|
164
|
+
</nunit2report>
|
165
|
+
</if>
|
149
166
|
</target>
|
150
167
|
|
151
168
|
<target name="open_results">
|
data/lib/build/compile.step
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
<target name="run_tasks">
|
41
41
|
<echo message="Running ${project::get-name()} tasks." />
|
42
42
|
<call target="prepare" if="${target::exists('prepare')}" />
|
43
|
-
<call target="
|
43
|
+
<call target="check_for_multitargeting" if="${target::exists('check_for_multitargeting')}" />
|
44
44
|
<call target="custom_tasks_before" if="${target::exists('custom_tasks_before')}" />
|
45
45
|
<call target="custom_tasks_replace" if="${target::exists('custom_tasks_replace')}" />
|
46
46
|
<call target="run_normal_tasks" if="${not is.replaced}" />
|
@@ -81,22 +81,16 @@
|
|
81
81
|
if="${project.name=='__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__'}" />
|
82
82
|
</target>
|
83
83
|
|
84
|
-
<target name="
|
84
|
+
<target name="check_for_multitargeting">
|
85
85
|
<if test="${string::contains(microsoft.framework,',')}">
|
86
86
|
<echo message="You want to multi target, eh? You passed a comma into the framework: ${microsoft.framework}" />
|
87
87
|
<property name="framework.multitargeting" value="true" />
|
88
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
89
|
</if>
|
93
90
|
<if test="${string::contains(microsoft.framework,';')}">
|
94
91
|
<echo message="You want to multi target, eh? You passed a semicolon into the framework: ${microsoft.framework}" />
|
95
92
|
<property name="framework.multitargeting" value="true" />
|
96
93
|
<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
94
|
</if>
|
101
95
|
</target>
|
102
96
|
|
@@ -122,6 +116,7 @@
|
|
122
116
|
|
123
117
|
<target name="build_dotNet_code_framework">
|
124
118
|
<echo message="Building on ${framework::get-version(microsoft.framework.specific)}" />
|
119
|
+
<property name="nant.settings.currentframework" value="${string::trim(microsoft.framework.specific)}" />
|
125
120
|
<!-- nant is retarded - I had to have two of these instead of throwing an if on the outputpath -->
|
126
121
|
<if test="${msbuild.override_output_path}">
|
127
122
|
<msbuild project="${solution.path}" verbosity="minimal">
|
@@ -129,7 +124,6 @@
|
|
129
124
|
<property name="OutputPath" value="${msbuild.outputpath}" />
|
130
125
|
<property name="Platform" value="${msbuild.platform}" />
|
131
126
|
<property name="TargetFrameworkVersion" value="v${framework::get-version(microsoft.framework.specific)}" />
|
132
|
-
<property name="ToolsVersion" value="${framework::get-version(microsoft.framework.specific)}" />
|
133
127
|
</msbuild>
|
134
128
|
</if>
|
135
129
|
<if test="${not msbuild.override_output_path}">
|
@@ -137,7 +131,6 @@
|
|
137
131
|
<property name="Configuration" value="${msbuild.configuration}" />
|
138
132
|
<property name="Platform" value="${msbuild.platform}" />
|
139
133
|
<property name="TargetFrameworkVersion" value="v${framework::get-version(microsoft.framework.specific)}" />
|
140
|
-
<property name="ToolsVersion" value="${framework::get-version(microsoft.framework.specific)}" />
|
141
134
|
</msbuild>
|
142
135
|
</if>
|
143
136
|
</target>
|
data/lib/build/gemsPrepare.step
CHANGED
@@ -32,6 +32,7 @@
|
|
32
32
|
<property name="version.build" value="0" overwrite="false" />
|
33
33
|
<property name="version.revision" value="0" overwrite="false" />
|
34
34
|
<property name="assembly.version.full" value="${version.major}.${version.minor}.${version.build}.${version.revision}" />
|
35
|
+
<property name="gem.build.date" value="20100801" overwrite="false" />
|
35
36
|
<property name="file.gems.version" value="${dirs.drop.gems}\VERSION" />
|
36
37
|
|
37
38
|
|
@@ -52,7 +53,7 @@
|
|
52
53
|
</target>
|
53
54
|
|
54
55
|
<target name="run_normal_tasks"
|
55
|
-
depends="prepare, copy_gems_folder, copy_app_drop_to_lib_folder, copy_docs_to_doc_folder, copy_notices_to_doc_folder, generate_version_file"
|
56
|
+
depends="prepare, copy_gems_folder, copy_app_drop_to_lib_folder, copy_docs_to_doc_folder, copy_notices_to_doc_folder, update_gem_build_date, generate_version_file"
|
56
57
|
description="Packaging gems." />
|
57
58
|
|
58
59
|
<target name="prepare">
|
@@ -125,9 +126,21 @@
|
|
125
126
|
</copy>
|
126
127
|
</target>
|
127
128
|
|
129
|
+
<target name="update_gem_build_date">
|
130
|
+
<property name="gem.current.date" value="${datetime::now()}" />
|
131
|
+
<property name="gem.current.date.year" value="${datetime::get-year(gem.current.date)}" />
|
132
|
+
<property name="gem.current.date.month" value="${datetime::get-month(gem.current.date)}" />
|
133
|
+
<property name="gem.current.date.month" value="${'0' + gem.current.date.month}" if="${string::get-length(gem.current.date.month) == 1}" />
|
134
|
+
<property name="gem.current.date.month" value="${'0' + gem.current.date.month}" if="${string::get-length(gem.current.date.month) == 1}" />
|
135
|
+
<property name="gem.current.date.day" value="${datetime::get-day(gem.current.date)}" />
|
136
|
+
<property name="gem.current.date.day" value="${'0' + gem.current.date.day}" if="${string::get-length(gem.current.date.day) == 1}" />
|
137
|
+
<property name="gem.build.date" value="${'' + gem.current.date.year + gem.current.date.month + gem.current.date.day}" />
|
138
|
+
</target>
|
139
|
+
|
128
140
|
<target name="generate_version_file">
|
129
|
-
|
130
|
-
<echo
|
141
|
+
|
142
|
+
<echo message="Generating ${file.gems.version} with ${assembly.version.full} and ${gem.build.date} for the version" />
|
143
|
+
<echo file="${file.gems.version}" append="false" failonerror="false">${assembly.version.full}.${gem.build.date}</echo>
|
131
144
|
</target>
|
132
145
|
|
133
146
|
<target name="custom_tasks_after">
|
data/lib/build/uppercut.dll
CHANGED
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uppercutbuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 40200385
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
|
10
|
+
- 345
|
11
|
+
- 20100805
|
12
|
+
version: 0.9.0.345.20100805
|
12
13
|
platform: ruby
|
13
14
|
authors:
|
14
15
|
- Rob "FerventCoder" Reynolds
|
@@ -17,7 +18,7 @@ autorequire:
|
|
17
18
|
bindir: bin
|
18
19
|
cert_chain: []
|
19
20
|
|
20
|
-
date: 2010-
|
21
|
+
date: 2010-08-05 00:00:00 -05:00
|
21
22
|
default_executable:
|
22
23
|
dependencies:
|
23
24
|
- !ruby/object:Gem::Dependency
|
@@ -37,7 +38,7 @@ dependencies:
|
|
37
38
|
type: :runtime
|
38
39
|
version_requirements: *id001
|
39
40
|
description: |
|
40
|
-
UppercuT is THE conventional build for .NET!
|
41
|
+
UppercuT is THE conventional build for .NET!
|
41
42
|
UppercuT seeks to solve both maintenance concerns and ease of build to help you concentrate on what you really want to do: write code. Upgrading the build should take seconds, not hours. And that is where UppercuT will beat any other automated build system hands down.
|
42
43
|
UppercuT uses conventions and has a simple configuration file for you to edit. Getting from zero to build takes literally less than five minutes. If you are still writing your own build scripts, you are working too hard.
|
43
44
|
UppercuT is extremely powerful because it is customizable and extendable. Every step of the build process is customizable with a pre, post and replace hook.
|