forked from DapperLib/Dapper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.ps1
76 lines (65 loc) · 2.15 KB
/
build.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
param(
[parameter(Position=0)][string] $PreReleaseSuffix = ''
)
$solutionPath = split-path $MyInvocation.MyCommand.Definition
$getDotNet = join-path $solutionPath "tools\install.ps1"
$env:DOTNET_INSTALL_DIR="$(Convert-Path "$PSScriptRoot")\.dotnet\win7-x64"
if (!(Test-Path $env:DOTNET_INSTALL_DIR))
{
mkdir $env:DOTNET_INSTALL_DIR | Out-Null
}
& $getDotNet
$env:PATH = "$env:DOTNET_INSTALL_DIR;$env:PATH"
$dotnet = "$env:DOTNET_INSTALL_DIR\dotnet"
$autoGeneratedVersion = $false
# Generate version number if not set
if ($env:BuildSemanticVersion -eq $null) {
$autoVersion = [math]::floor((New-TimeSpan $(Get-Date) $(Get-Date -month 1 -day 1 -year 2016 -hour 0 -minute 0 -second 0)).TotalMinutes * -1).ToString() + "-" + (Get-Date).ToString("ss")
$env:BuildSemanticVersion = "rc2-" + $autoVersion
$autoGeneratedVersion = $true
Write-Host "Set version to $autoVersion"
}
ls */*/project.json | foreach { echo $_.FullName} |
foreach {
$content = get-content "$_"
$content = $content.Replace("99.99.99-rc2", "1.0.0-$env:BuildSemanticVersion")
set-content "$_" $content -encoding UTF8
}
# Restore packages and build product
& $dotnet restore -v Minimal # Restore all packages
if ($LASTEXITCODE -ne 0)
{
throw "dotnet restore failed with exit code $LASTEXITCODE"
}
# Build all
dir "Dapper*" | where {$_.PsIsContainer} |
foreach {
if ($PreReleaseSuffix) {
& $dotnet build "$_" --version-suffix "$PreReleaseSuffix"
} else {
& $dotnet build "$_"
}
}
# Run tests
dir "*.Tests*" | where {$_.PsIsContainer} |
foreach {
& $dotnet test "$_"
}
# Package all
dir "Dapper*" | where {$_.PsIsContainer -and $_ -NotLike "*.Tests*" } |
foreach {
if ($PreReleaseSuffix) {
& $dotnet pack "$_" -c Release -o .\.nupkg\ --version-suffix "$PreReleaseSuffix"
} else {
& $dotnet pack "$_" -c Release -o .\.nupkg\
}
}
ls */*/project.json | foreach { echo $_.FullName} |
foreach {
$content = get-content "$_"
$content = $content.Replace("1.0.0-$env:BuildSemanticVersion", "99.99.99-rc2")
set-content "$_" $content -encoding UTF8
}
if ($autoGeneratedVersion){
$env:BuildSemanticVersion = $null
}