Skip to content

Commit

Permalink
Upgraded PSake to 4.6.0 and use VSWhere to detect the Visual Studio 2…
Browse files Browse the repository at this point in the history
…017 Build Tools (#34)
  • Loading branch information
dennisdoomen committed May 25, 2018
1 parent 46e1581 commit 871cb81
Show file tree
Hide file tree
Showing 10 changed files with 281 additions and 156 deletions.
9 changes: 0 additions & 9 deletions .nuget/nuget.config

This file was deleted.

Binary file modified .nuget/nuget.exe
Binary file not shown.
21 changes: 18 additions & 3 deletions Build/default.ps1
Expand Up @@ -16,7 +16,22 @@ properties {

task default -depends Clean, ExtractVersionsFromGit, ApplyPackageVersioning, RestoreNugetPackages, Compile, RunTests, BuildPackage, PublishToMyget

task Clean {
task DetermineMsBuildPath -depends RestoreNugetPackages {
Write-Host "Adding msbuild to the environment path"

$installationPath = & "$BaseDirectory\Packages\vswhere.2.4.1\tools\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath

if ($installationPath) {
$msbuildPath = join-path $installationPath 'MSBuild\15.0\Bin'

if (test-path $msbuildPath) {
Write-Host "msbuild directory set to $msbuildPath"
$env:path = "$msbuildPath;$env:path"
}
}
}

task Clean -depends DetermineMsBuildPath {
TeamCity-Block "Clean" {
Get-ChildItem $PackageDirectory *.nupkg | ForEach { Remove-Item $_.FullName }
exec { msbuild $SlnFile /p:Configuration=Release /t:Clean $logger}
Expand Down Expand Up @@ -60,7 +75,7 @@ task RestoreNugetPackages {
& $Nuget install "$BaseDirectory\Build\packages.config" -OutputDirectory "$BaseDirectory\Packages" -ConfigFile "$BaseDirectory\NuGet.Config"
}

task Compile {
task Compile -depends DetermineMsBuildPath {
TeamCity-Block "Compiling" {

exec { msbuild /v:m /p:Platform="Any CPU" $SlnFile /p:Configuration=Release /p:SourceAnalysisTreatErrorsAsWarnings=false /t:Rebuild $logger}
Expand All @@ -86,7 +101,7 @@ task BuildPackage {

& "$ArtifactsDirectory\MergeCSharpFiles.exe" "$SrcDirectory\FluidCaching" *.cs "$ArtifactsDirectory\FluidCaching.cs"

& $Nuget pack "$SrcDirectory\.nuspec" -o "$ArtifactsDirectory\"
& $Nuget pack "$SrcDirectory\.nuspec" -OutputDirectory "$ArtifactsDirectory\"
}
}

Expand Down
1 change: 1 addition & 0 deletions Build/packages.config
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="xunit.runner.console" version="2.2.0" />
<package id="vswhere" version="2.4.1" />
</packages>
4 changes: 2 additions & 2 deletions Build/psake-config.ps1
@@ -1,7 +1,7 @@
$config.buildFileName="default.ps1"
$config.framework = "4.6x86"
$config.framework = "4.5.2"
$config.taskNameFormat="Executing {0}"
$config.verboseError= $false
$config.verboseError= $true
$config.coloredOutput = $true
$config.modules=(".\modules\*.psm1")
$config.moduleScope="global"
Expand Down
8 changes: 5 additions & 3 deletions Build/psake.ps1
Expand Up @@ -25,7 +25,9 @@ param(
[Parameter(Position=8, Mandatory=0)]
[switch]$help = $false,
[Parameter(Position=9, Mandatory=0)]
[string]$scriptPath
[string]$scriptPath,
[Parameter(Position=10,Mandatory=0)]
[switch]$detailedDocs = $false
)

# setting $scriptPath here, not as default argument, to support calling as "powershell -File psake.ps1"
Expand All @@ -41,11 +43,11 @@ if ($help) {
return
}

if ($buildPath -and (-not(test-path $buildFile))) {
if ($buildFile -and (-not(test-path $buildFile))) {
$absoluteBuildFile = (join-path $scriptPath $buildFile)
if (test-path $absoluteBuildFile) {
$buildFile = $absoluteBuildFile
}
}

Invoke-psake $buildFile $taskList $framework $docs $parameters $properties $initialization $nologo
Invoke-psake $buildFile $taskList $framework $docs $parameters $properties $initialization $nologo $detailedDocs
31 changes: 31 additions & 0 deletions Build/psake.psd1
@@ -0,0 +1,31 @@
@{
ModuleToProcess = 'psake.psm1'
ModuleVersion = '4.6.0'
GUID = 'cfb53216-072f-4a46-8975-ff7e6bda05a5'
Author = 'James Kovacs'
Copyright = 'Copyright (c) 2012-16 James Kovacs, Damian Hickey and Contributors'
PowerShellVersion = '2.0'
Description = 'psake is a build automation tool written in PowerShell.'
FunctionsToExport = @('Invoke-psake',
'Invoke-Task',
'Get-PSakeScriptTasks',
'Task',
'Properties',
'Include',
'FormatTaskName',
'TaskSetup',
'TaskTearDown',
'Framework',
'Assert',
'Exec')
VariablesToExport = 'psake'

PrivateData = @{
PSData = @{
LicenseUri = 'https://github.com/psake/psake/blob/master/license.txt'
ProjectUri = 'https://github.com/psake/psake'
Tags = @('Build', 'Task')
IconUri = 'https://raw.githubusercontent.com/psake/graphics/master/png/psake-single-icon-teal-bg-256x256.png'
}
}
}

0 comments on commit 871cb81

Please sign in to comment.