1
1
[CmdletBinding (PositionalBinding = $false )]
2
2
param (
3
- [bool ] $RunTests = $true ,
3
+ [bool ] $RunTests = $true ,
4
4
[bool ] $CheckCoverage ,
5
- [bool ] $CreatePackages
5
+ [bool ] $CreatePackages ,
6
+ [string ] $BuildVersion
6
7
)
7
8
8
- $testProject = " tests/InfinityCrawler.Tests/InfinityCrawler.Tests.csproj"
9
- $testCoverageFilter = " +[InfinityCrawler]* -[InfinityCrawler.Tests]*"
10
-
11
9
$packageOutputFolder = " $PSScriptRoot \build-artifacts"
12
10
mkdir - Force $packageOutputFolder | Out-Null
13
11
12
+ $config = Get-Content " buildconfig.json" | ConvertFrom-Json
13
+
14
+ if (-not $BuildVersion ) {
15
+ $lastTaggedVersion = git describe -- tags -- abbrev= 0
16
+ if ($lastTaggedVersion -contains " fatal" ) {
17
+ $lastTaggedVersion = " 0.0.0"
18
+ }
19
+
20
+ $BuildVersion = $lastTaggedVersion
21
+ }
22
+
14
23
Write-Host " Run Parameters:" - ForegroundColor Cyan
15
24
Write-Host " RunTests: $RunTests "
16
25
Write-Host " CheckCoverage: $CheckCoverage "
17
26
Write-Host " CreatePackages: $CreatePackages "
27
+ Write-Host " BuildVersion: $BuildVersion "
28
+ Write-Host " Configuration:" - ForegroundColor Cyan
29
+ Write-Host " TestProject: $ ( $config.TestProject ) "
30
+ Write-Host " TestCoverageFilter: $ ( $config.TestCoverageFilter ) "
18
31
Write-Host " Environment:" - ForegroundColor Cyan
19
32
Write-Host " .NET Version:" (dotnet -- version)
20
33
Write-Host " Artifact Path: $packageOutputFolder "
21
34
22
35
Write-Host " Building solution..." - ForegroundColor " Magenta"
23
- dotnet build - c Release
36
+ dotnet build - c Release / p:Version = $BuildVersion
24
37
if ($LastExitCode -ne 0 ) {
25
- Write-Host " Build failed, aborting!" - Foreground " Red"
26
- Exit 1
38
+ Write-Host " Build failed, aborting!" - Foreground " Red"
39
+ Exit 1
27
40
}
28
41
Write-Host " Solution built!" - ForegroundColor " Green"
29
42
30
- if ($RunTests -And -Not $CheckCoverage ) {
31
- Write-Host " Running tests without coverage..." - ForegroundColor " Magenta"
32
- dotnet test $testProject
33
- if ($LastExitCode -ne 0 ) {
34
- Write-Host " Tests failed, aborting build!" - Foreground " Red"
35
- Exit 1
36
- }
37
- Write-Host " Tests passed!" - ForegroundColor " Green"
38
- }
39
- elseif ($RunTests -And $CheckCoverage ) {
40
- Write-Host " Running tests with coverage..." - ForegroundColor " Magenta"
41
- OpenCover.Console.exe - register:user - target:" %LocalAppData%\Microsoft\dotnet\dotnet.exe" - targetargs:" test $testProject /p:DebugType=Full" - filter:" $testCoverageFilter " - output:" $packageOutputFolder \coverage.xml" - oldstyle
42
- if ($LastExitCode -ne 0 -Or -Not $? ) {
43
- Write-Host " Failure performing tests with coverage, aborting!" - Foreground " Red"
44
- Exit 1
45
- }
46
- else {
43
+ if ($RunTests ) {
44
+ if (-Not $CheckCoverage ) {
45
+ Write-Host " Running tests without coverage..." - ForegroundColor " Magenta"
46
+ dotnet test $config.TestProject
47
+ if ($LastExitCode -ne 0 ) {
48
+ Write-Host " Tests failed, aborting build!" - Foreground " Red"
49
+ Exit 1
50
+ }
47
51
Write-Host " Tests passed!" - ForegroundColor " Green"
48
- Write-Host " Saving code coverage..." - ForegroundColor " Magenta"
49
- codecov -f " $packageOutputFolder \coverage.xml"
52
+ }
53
+ else {
54
+ Write-Host " Running tests with coverage..." - ForegroundColor " Magenta"
55
+ OpenCover.Console.exe - register:user - target:" %LocalAppData%\Microsoft\dotnet\dotnet.exe" - targetargs:" test $ ( $config.TestProject ) /p:DebugType=Full" - filter:" $ ( $config.TestCoverageFilter ) " - output:" $packageOutputFolder \coverage.xml" - oldstyle
50
56
if ($LastExitCode -ne 0 -Or -Not $? ) {
51
- Write-Host " Failure saving code coverage!" - Foreground " Red"
57
+ Write-Host " Failure performing tests with coverage, aborting!" - Foreground " Red"
58
+ Exit 1
52
59
}
53
60
else {
54
- Write-Host " Coverage saved!" - ForegroundColor " Green"
61
+ Write-Host " Tests passed!" - ForegroundColor " Green"
62
+ Write-Host " Saving code coverage..." - ForegroundColor " Magenta"
63
+ codecov -f " $packageOutputFolder \coverage.xml"
64
+ if ($LastExitCode -ne 0 -Or -Not $? ) {
65
+ Write-Host " Failure saving code coverage!" - Foreground " Red"
66
+ }
67
+ else {
68
+ Write-Host " Coverage saved!" - ForegroundColor " Green"
69
+ }
55
70
}
56
71
}
57
72
}
58
73
59
74
if ($CreatePackages ) {
60
- Write-Host " Clearing existing $packageOutputFolder ... " - NoNewline
61
- Get-ChildItem $packageOutputFolder | Remove-Item
62
- Write-Host " Packages cleared!" - ForegroundColor " Green"
75
+ Write-Host " Clearing existing $packageOutputFolder ... " - NoNewline
76
+ Get-ChildItem $packageOutputFolder | Remove-Item
77
+ Write-Host " Packages cleared!" - ForegroundColor " Green"
63
78
64
- Write-Host " Packing..." - ForegroundColor " Magenta"
65
- dotnet pack -- no- build - c Release / p:PackageOutputPath= $packageOutputFolder
79
+ Write-Host " Packing..." - ForegroundColor " Magenta"
80
+ dotnet pack -- no- build - c Release / p:Version = $BuildVersion / p: PackageOutputPath= $packageOutputFolder
66
81
Write-Host " Packing complete!" - ForegroundColor " Green"
67
82
}
0 commit comments