-
Notifications
You must be signed in to change notification settings - Fork 167
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #293 from KaiL3/Development
Update Versions, Framework and NuGet Packages
- Loading branch information
Showing
44 changed files
with
1,108 additions
and
940 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-04/schema#", | ||
"$ref": "#/definitions/build", | ||
"title": "Build Schema", | ||
"definitions": { | ||
"build": { | ||
"type": "object", | ||
"properties": { | ||
"ChocolateyApiKey": { | ||
"type": "string", | ||
"description": "Chocolatey api key" | ||
}, | ||
"Configuration": { | ||
"type": "string", | ||
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", | ||
"enum": [ | ||
"Debug", | ||
"Release" | ||
] | ||
}, | ||
"Continue": { | ||
"type": "boolean", | ||
"description": "Indicates to continue a previously failed build attempt" | ||
}, | ||
"ExcludeDirectoryGlob": { | ||
"type": "array", | ||
"description": "Exlcude directory glob", | ||
"items": { | ||
"type": "string" | ||
} | ||
}, | ||
"ExcludeFileGlob": { | ||
"type": "array", | ||
"description": "Exclude file globs", | ||
"items": { | ||
"type": "string" | ||
} | ||
}, | ||
"GitHubApiKey": { | ||
"type": "string", | ||
"description": "GitHub Api key" | ||
}, | ||
"Help": { | ||
"type": "boolean", | ||
"description": "Shows the help text for this build assembly" | ||
}, | ||
"Host": { | ||
"type": "string", | ||
"description": "Host for execution. Default is 'automatic'", | ||
"enum": [ | ||
"AppVeyor", | ||
"AzurePipelines", | ||
"Bamboo", | ||
"Bitbucket", | ||
"Bitrise", | ||
"GitHubActions", | ||
"GitLab", | ||
"Jenkins", | ||
"Rider", | ||
"SpaceAutomation", | ||
"TeamCity", | ||
"Terminal", | ||
"TravisCI", | ||
"VisualStudio", | ||
"VSCode" | ||
] | ||
}, | ||
"my_variable": { | ||
"type": "string", | ||
"description": "My variable" | ||
}, | ||
"NoLogo": { | ||
"type": "boolean", | ||
"description": "Disables displaying the NUKE logo" | ||
}, | ||
"NugetApiKey": { | ||
"type": "string", | ||
"description": "Nuget api key" | ||
}, | ||
"Partition": { | ||
"type": "string", | ||
"description": "Partition to use on CI" | ||
}, | ||
"Plan": { | ||
"type": "boolean", | ||
"description": "Shows the execution plan (HTML)" | ||
}, | ||
"Profile": { | ||
"type": "array", | ||
"description": "Defines the profiles to load", | ||
"items": { | ||
"type": "string" | ||
} | ||
}, | ||
"Root": { | ||
"type": "string", | ||
"description": "Root directory during build execution" | ||
}, | ||
"Skip": { | ||
"type": "array", | ||
"description": "List of targets to be skipped. Empty list skips all dependencies", | ||
"items": { | ||
"type": "string", | ||
"enum": [ | ||
"BuildChocolateyPackage", | ||
"ChangeVersionNumber", | ||
"Clean", | ||
"CleanPackage", | ||
"CleanupAppDataLogExpert", | ||
"CleanupDocumentsLogExpert", | ||
"ColumnizerLibCreateNuget", | ||
"Compile", | ||
"CopyFilesForSetup", | ||
"CopyOutputForChocolatey", | ||
"CreatePackage", | ||
"CreateSetup", | ||
"Pack", | ||
"PackageSftpFileSystem", | ||
"PrepareChocolateyTemplates", | ||
"Publish", | ||
"PublishChocolatey", | ||
"PublishColumnizerNuget", | ||
"PublishGithub", | ||
"PublishToAppveyor", | ||
"Restore", | ||
"Test" | ||
] | ||
} | ||
}, | ||
"Solution": { | ||
"type": "string", | ||
"description": "Path to a solution file that is automatically loaded" | ||
}, | ||
"Target": { | ||
"type": "array", | ||
"description": "List of targets to be invoked. Default is '{default_target}'", | ||
"items": { | ||
"type": "string", | ||
"enum": [ | ||
"BuildChocolateyPackage", | ||
"ChangeVersionNumber", | ||
"Clean", | ||
"CleanPackage", | ||
"CleanupAppDataLogExpert", | ||
"CleanupDocumentsLogExpert", | ||
"ColumnizerLibCreateNuget", | ||
"Compile", | ||
"CopyFilesForSetup", | ||
"CopyOutputForChocolatey", | ||
"CreatePackage", | ||
"CreateSetup", | ||
"Pack", | ||
"PackageSftpFileSystem", | ||
"PrepareChocolateyTemplates", | ||
"Publish", | ||
"PublishChocolatey", | ||
"PublishColumnizerNuget", | ||
"PublishGithub", | ||
"PublishToAppveyor", | ||
"Restore", | ||
"Test" | ||
] | ||
} | ||
}, | ||
"Verbosity": { | ||
"type": "string", | ||
"description": "Logging verbosity during build execution. Default is 'Normal'", | ||
"enum": [ | ||
"Minimal", | ||
"Normal", | ||
"Quiet", | ||
"Verbose" | ||
] | ||
}, | ||
"VersionFileString": { | ||
"type": "string", | ||
"description": "Version file string" | ||
}, | ||
"VersionInformationString": { | ||
"type": "string", | ||
"description": "Version Information string" | ||
}, | ||
"VersionString": { | ||
"type": "string", | ||
"description": "Version string" | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
"$schema": "./build.schema.json", | ||
"Solution": "src/LogExpert.sln" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,68 +1,74 @@ | ||
[CmdletBinding()] | ||
Param( | ||
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] | ||
[string[]]$BuildArguments | ||
) | ||
|
||
Write-Output "Windows PowerShell $($Host.Version)" | ||
|
||
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { exit 1 } | ||
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent | ||
|
||
########################################################################### | ||
# CONFIGURATION | ||
########################################################################### | ||
|
||
$BuildProjectFile = "$PSScriptRoot\build\_build.csproj" | ||
$TempDirectory = "$PSScriptRoot\\.tmp" | ||
|
||
$DotNetGlobalFile = "$PSScriptRoot\\global.json" | ||
$DotNetInstallUrl = "https://raw.githubusercontent.com/dotnet/cli/master/scripts/obtain/dotnet-install.ps1" | ||
$DotNetChannel = "Current" | ||
|
||
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1 | ||
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 | ||
|
||
########################################################################### | ||
# EXECUTION | ||
########################################################################### | ||
|
||
function ExecSafe([scriptblock] $cmd) { | ||
& $cmd | ||
if ($LASTEXITCODE) { exit $LASTEXITCODE } | ||
} | ||
|
||
# If global.json exists, load expected version | ||
if (Test-Path $DotNetGlobalFile) { | ||
$DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) | ||
if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { | ||
$DotNetVersion = $DotNetGlobal.sdk.version | ||
} | ||
} | ||
|
||
# If dotnet is installed locally, and expected version is not set or installation matches the expected version | ||
if ((Get-Command "dotnet" -ErrorAction SilentlyContinue) -ne $null -and ` | ||
(!(Test-Path variable:DotNetVersion) -or $(& dotnet --version) -eq $DotNetVersion)) { | ||
$env:DOTNET_EXE = (Get-Command "dotnet").Path | ||
} | ||
else { | ||
$DotNetDirectory = "$TempDirectory\dotnet-win" | ||
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" | ||
|
||
# Download install script | ||
$DotNetInstallFile = "$TempDirectory\dotnet-install.ps1" | ||
md -force $TempDirectory > $null | ||
(New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile) | ||
|
||
# Install by channel or version | ||
if (!(Test-Path variable:DotNetVersion)) { | ||
ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } | ||
} else { | ||
ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } | ||
} | ||
} | ||
|
||
Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)" | ||
|
||
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false } | ||
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } | ||
[CmdletBinding()] | ||
Param( | ||
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] | ||
[string[]]$BuildArguments | ||
) | ||
|
||
Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)" | ||
|
||
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 } | ||
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent | ||
|
||
########################################################################### | ||
# CONFIGURATION | ||
########################################################################### | ||
|
||
$BuildProjectFile = "$PSScriptRoot\build\_build.csproj" | ||
$TempDirectory = "$PSScriptRoot\\.nuke\temp" | ||
|
||
$DotNetGlobalFile = "$PSScriptRoot\\global.json" | ||
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" | ||
$DotNetChannel = "STS" | ||
|
||
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 | ||
$env:DOTNET_NOLOGO = 1 | ||
|
||
########################################################################### | ||
# EXECUTION | ||
########################################################################### | ||
|
||
function ExecSafe([scriptblock] $cmd) { | ||
& $cmd | ||
if ($LASTEXITCODE) { exit $LASTEXITCODE } | ||
} | ||
|
||
# If dotnet CLI is installed globally and it matches requested version, use for execution | ||
if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and ` | ||
$(dotnet --version) -and $LASTEXITCODE -eq 0) { | ||
$env:DOTNET_EXE = (Get-Command "dotnet").Path | ||
} | ||
else { | ||
# Download install script | ||
$DotNetInstallFile = "$TempDirectory\dotnet-install.ps1" | ||
New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null | ||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 | ||
(New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile) | ||
|
||
# If global.json exists, load expected version | ||
if (Test-Path $DotNetGlobalFile) { | ||
$DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) | ||
if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { | ||
$DotNetVersion = $DotNetGlobal.sdk.version | ||
} | ||
} | ||
|
||
# Install by channel or version | ||
$DotNetDirectory = "$TempDirectory\dotnet-win" | ||
if (!(Test-Path variable:DotNetVersion)) { | ||
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } | ||
} else { | ||
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } | ||
} | ||
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" | ||
$env:PATH = "$DotNetDirectory;$env:PATH" | ||
} | ||
|
||
Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)" | ||
|
||
if (Test-Path env:NUKE_ENTERPRISE_TOKEN) { | ||
& $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null | ||
& $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null | ||
} | ||
|
||
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } | ||
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } |
Oops, something went wrong.