npoi

Форк
0
/
build.ps1 
74 строки · 3.1 Кб
1
[CmdletBinding()]
2
Param(
3
    [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
4
    [string[]]$BuildArguments
5
)
6

7
Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)"
8

9
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 }
10
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
11

12
###########################################################################
13
# CONFIGURATION
14
###########################################################################
15

16
$BuildProjectFile = "$PSScriptRoot\build\_build.csproj"
17
$TempDirectory = "$PSScriptRoot\\.nuke\temp"
18

19
$DotNetGlobalFile = "$PSScriptRoot\\global.json"
20
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1"
21
$DotNetChannel = "STS"
22

23
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1
24
$env:DOTNET_NOLOGO = 1
25

26
###########################################################################
27
# EXECUTION
28
###########################################################################
29

30
function ExecSafe([scriptblock] $cmd) {
31
    & $cmd
32
    if ($LASTEXITCODE) { exit $LASTEXITCODE }
33
}
34

35
# If dotnet CLI is installed globally and it matches requested version, use for execution
36
if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and `
37
     $(dotnet --version) -and $LASTEXITCODE -eq 0) {
38
    $env:DOTNET_EXE = (Get-Command "dotnet").Path
39
}
40
else {
41
    # Download install script
42
    $DotNetInstallFile = "$TempDirectory\dotnet-install.ps1"
43
    New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null
44
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
45
    (New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile)
46

47
    # If global.json exists, load expected version
48
    if (Test-Path $DotNetGlobalFile) {
49
        $DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json)
50
        if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) {
51
            $DotNetVersion = $DotNetGlobal.sdk.version
52
        }
53
    }
54

55
    # Install by channel or version
56
    $DotNetDirectory = "$TempDirectory\dotnet-win"
57
    if (!(Test-Path variable:DotNetVersion)) {
58
        ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath }
59
    } else {
60
        ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath }
61
    }
62
    $env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe"
63
    $env:PATH = "$DotNetDirectory;$env:PATH"
64
}
65

66
Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)"
67

68
if (Test-Path env:NUKE_ENTERPRISE_TOKEN) {
69
    & $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null
70
    & $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null
71
}
72

73
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet }
74
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }
75

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.