|
1 | | -<# |
2 | | -.SYNOPSIS |
3 | | - You can add this to you build script to ensure that psbuild is available before calling |
4 | | - Invoke-MSBuild. If psbuild is not available locally it will be downloaded automatically. |
5 | | -#> |
6 | | -function EnsurePsbuildInstalled{ |
7 | | - [cmdletbinding()] |
8 | | - param( |
9 | | - [string]$psbuildInstallUri = 'https://raw.githubusercontent.com/ligershark/psbuild/master/src/GetPSBuild.ps1' |
10 | | - ) |
11 | | - process{ |
12 | | - if(-not (Get-Command "Invoke-MsBuild" -errorAction SilentlyContinue)){ |
13 | | - 'Installing psbuild from [{0}]' -f $psbuildInstallUri | Write-Verbose |
14 | | - (new-object Net.WebClient).DownloadString($psbuildInstallUri) | iex |
15 | | - } |
16 | | - else{ |
17 | | - 'psbuild already loaded, skipping download' | Write-Verbose |
18 | | - } |
19 | | - |
20 | | - # make sure it's loaded and throw if not |
21 | | - if(-not (Get-Command "Invoke-MsBuild" -errorAction SilentlyContinue)){ |
22 | | - throw ('Unable to install/load psbuild from [{0}]' -f $psbuildInstallUri) |
23 | | - } |
24 | | - } |
25 | | -} |
26 | | - |
27 | | -# Taken from psake https://github.com/psake/psake |
28 | | - |
29 | | -<# |
30 | | -.SYNOPSIS |
31 | | - This is a helper function that runs a scriptblock and checks the PS variable $lastexitcode |
32 | | - to see if an error occcured. If an error is detected then an exception is thrown. |
33 | | - This function allows you to run command-line programs without having to |
34 | | - explicitly check the $lastexitcode variable. |
35 | | -.EXAMPLE |
36 | | - exec { svn info $repository_trunk } "Error executing SVN. Please verify SVN command-line client is installed" |
37 | | -#> |
38 | | -function Exec |
39 | | -{ |
40 | | - [CmdletBinding()] |
41 | | - param( |
42 | | - [Parameter(Position=0,Mandatory=1)][scriptblock]$cmd, |
43 | | - [Parameter(Position=1,Mandatory=0)][string]$errorMessage = ($msgs.error_bad_command -f $cmd) |
44 | | - ) |
45 | | - & $cmd |
46 | | - if ($lastexitcode -ne 0) { |
47 | | - throw ("Exec: " + $errorMessage) |
48 | | - } |
49 | | -} |
50 | | - |
51 | | -if(Test-Path .\artifacts) { Remove-Item .\artifacts -Force -Recurse } |
52 | | - |
53 | | -EnsurePsbuildInstalled |
54 | | - |
55 | 1 | exec { & dotnet restore .\src\JsonApiDotNetCore\JsonApiDotNetCore.csproj } |
56 | 2 |
|
57 | | -#Invoke-MSBuild |
58 | | - |
59 | 3 | $revision = @{ $true = $env:APPVEYOR_BUILD_NUMBER; $false = 1 }[$env:APPVEYOR_BUILD_NUMBER -ne $NULL]; |
60 | 4 | $revision = "{0:D4}" -f [convert]::ToInt32($revision, 10) |
61 | 5 |
|
|
0 commit comments