Hide output of dotnet restore by default
Address Andy's comments about build script. Add more information about the version into build Use windows inbox version of pester for FullCLR Revert dotnet cli to a known good version to avoid #638
This commit is contained in:
parent
b28d96d700
commit
b126d698e2
|
@ -13,7 +13,7 @@ before_install:
|
|||
- sudo sh -c 'echo "deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
|
||||
- sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
|
||||
- sudo apt-get -qq update
|
||||
- sudo apt-get install -y dotnet=1.0.0.001638-1
|
||||
- sudo apt-get install -y dotnet=1.0.0.001425-1
|
||||
script:
|
||||
- dotnet restore
|
||||
- ./build.sh
|
||||
|
|
|
@ -62,6 +62,11 @@ function Start-PSBuild
|
|||
}
|
||||
}
|
||||
|
||||
function log([string]$message)
|
||||
{
|
||||
Write-Host -Foreground Green $message
|
||||
}
|
||||
|
||||
# simplify ParameterSetNames, set output
|
||||
if ($PSCmdlet.ParameterSetName -eq 'FullCLR')
|
||||
{
|
||||
|
@ -70,7 +75,7 @@ function Start-PSBuild
|
|||
|
||||
if (-not $Output)
|
||||
{
|
||||
if ($FullCLR) { $Output = "$PSScriptRoot\binFull" } else { $Output = "$PSScriptRoot\bin" }
|
||||
if ($FullCLR) { $Output = "$PSScriptRoot/binFull" } else { $Output = "$PSScriptRoot/bin" }
|
||||
}
|
||||
|
||||
# verify we have all tools in place to do the build
|
||||
|
@ -87,12 +92,12 @@ function Start-PSBuild
|
|||
|
||||
# handle clean
|
||||
if ($Clean) {
|
||||
Remove-Item -Force -Recurse $Output -ErrorAction SilentlyContinues
|
||||
Remove-Item -Force -Recurse $Output -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
New-Item -Force -Type Directory $Output | Out-Null
|
||||
|
||||
# handle Restore
|
||||
# define key build variables
|
||||
if ($FullCLR)
|
||||
{
|
||||
$Top = "$PSScriptRoot\src\Microsoft.PowerShell.ConsoleHost"
|
||||
|
@ -104,16 +109,26 @@ function Start-PSBuild
|
|||
$framework = 'netstandardapp1.5'
|
||||
}
|
||||
|
||||
# handle Restore
|
||||
if ($Restore -Or -Not (Test-Path "$Top/project.lock.json")) {
|
||||
dotnet restore $PSScriptRoot
|
||||
log "Run dotnet restore"
|
||||
# restore is genuinely verbose.
|
||||
# we don't show it by default to keep CI build log size small
|
||||
if ($PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent)
|
||||
{
|
||||
dotnet restore $PSScriptRoot
|
||||
}
|
||||
else
|
||||
{
|
||||
dotnet restore $PSScriptRoot > $null
|
||||
}
|
||||
}
|
||||
|
||||
# Build native components
|
||||
if (-not $FullCLR)
|
||||
{
|
||||
Write-Verbose "Start CoreCLR build"
|
||||
|
||||
if ($IsLinux -Or $IsOSX) {
|
||||
log "Start building native components"
|
||||
$InstallCommand = if ($IsLinux) { "apt-get" } elseif ($IsOSX) { "brew" }
|
||||
foreach ($Dependency in "cmake", "g++") {
|
||||
if (-Not (Get-Command $Dependency -ErrorAction SilentlyContinue)) {
|
||||
|
@ -141,36 +156,32 @@ function Start-PSBuild
|
|||
}
|
||||
else
|
||||
{
|
||||
Write-Verbose "Start building native powershell.exe"
|
||||
log "Start building native powershell.exe"
|
||||
$build = "$PSScriptRoot/build"
|
||||
if ($Clean) {
|
||||
Remove-Item -Force -Recurse $build -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
mkdir $build -ErrorAction SilentlyContinue
|
||||
$origPWD = $pwd
|
||||
try
|
||||
{
|
||||
cd $build
|
||||
Push-Location $build
|
||||
|
||||
if ($cmakeGenerator)
|
||||
{
|
||||
cmake -G "$cmakeGenerator" ..\src\powershell-native
|
||||
cmake -G $cmakeGenerator ..\src\powershell-native
|
||||
}
|
||||
else
|
||||
{
|
||||
cmake ..\src\powershell-native
|
||||
}
|
||||
msbuild powershell.vcxproj /p:Configuration=$msbuildConfiguration
|
||||
cp -rec $msbuildConfiguration\* $BINFULL
|
||||
}
|
||||
finally
|
||||
{
|
||||
cd $origPWD
|
||||
cp -rec $msbuildConfiguration\* $Output
|
||||
}
|
||||
finally { Pop-Location }
|
||||
}
|
||||
|
||||
Write-Verbose "Building PowerShell"
|
||||
log "Building PowerShell"
|
||||
$Arguments = "--framework", $framework, "--output", $Output
|
||||
if ($IsLinux -Or $IsOSX) { $Arguments += "--configuration", "Linux" }
|
||||
if ($Runtime) { $Arguments += "--runtime", $Runtime }
|
||||
|
@ -180,8 +191,7 @@ function Start-PSBuild
|
|||
# there is a problem with code signing:
|
||||
# AssemblyKeyFileAttribute file path cannot be correctly located, if `dotnet publish $TOP` syntax is used
|
||||
# we workaround it with calling `dotnet publish` from $TOP directory instead.
|
||||
$origPWD = $pwd
|
||||
cd $Top
|
||||
Push-Location $Top
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -197,7 +207,7 @@ function Start-PSBuild
|
|||
}
|
||||
finally
|
||||
{
|
||||
if ($FullCLR) { cd $origPWD }
|
||||
if ($FullCLR) { Pop-Location }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -143,7 +143,7 @@ to obtain all the necessary .NET packages.**
|
|||
|
||||
Build with `./build.sh` on Linux and OS X.
|
||||
|
||||
`Start-PSBuild` from module `.\PowerShellGitHubDev.psm1` on Windows.
|
||||
`Start-PSBuild` from module `.\PowerShellGitHubDev.psm1` on Windows and Linux / OS X, if you self-hosting PowerShell.
|
||||
|
||||
Specifically:
|
||||
|
||||
|
|
34
appveyor.yml
34
appveyor.yml
|
@ -1,3 +1,5 @@
|
|||
version: 0.2.0.{build}
|
||||
|
||||
environment:
|
||||
priv_key:
|
||||
secure: <encryped-value>
|
||||
|
@ -18,7 +20,7 @@ install:
|
|||
- git config --global url.git@github.com:.insteadOf https://github.com/
|
||||
- git submodule update --init --recursive -- src/monad src/windows-build src/Microsoft.PowerShell.Linux.Host/Modules/Pester
|
||||
- ps: Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/install.ps1 -OutFile install.ps1
|
||||
- ps: ./install.ps1 -version 1.0.0.001638 -channel beta
|
||||
- ps: ./install.ps1 -version 1.0.0.001425 -channel beta
|
||||
|
||||
build_script:
|
||||
- ps: |
|
||||
|
@ -34,32 +36,38 @@ test_script:
|
|||
$ErrorActionPreference = 'Stop'
|
||||
#
|
||||
# CoreCLR
|
||||
$testResultsFile = ".\TestsResults.xml"
|
||||
Write-Host -Foreground Green 'Run CoreCLR tests'
|
||||
$testResultsFile = "$pwd\TestsResults.xml"
|
||||
.\bin\powershell.exe --noprofile -c "Import-Module .\bin\Modules\Microsoft.PowerShell.Platform; Invoke-Pester test/powershell -OutputFormat NUnitXml -OutputFile $testResultsFile"
|
||||
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
|
||||
#
|
||||
# FullCLR
|
||||
$testResultsFile = ".\TestsResults.FullCLR.xml"
|
||||
Start-DevPSGitHub -binDir $pwd\binFull -NoNewWindow -ArgumentList '-command', "Import-Module .\bin\Modules\Pester; Import-Module .\bin\Modules\Microsoft.PowerShell.Platform; Invoke-Pester test/fullCLR -OutputFormat NUnitXml -OutputFile $testResultsFile"
|
||||
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
|
||||
Write-Host -Foreground Green 'Run FullCLR tests'
|
||||
$testResultsFileFullCLR = "$pwd\TestsResults.FullCLR.xml"
|
||||
Start-DevPSGitHub -binDir $pwd\binFull -NoNewWindow -ArgumentList '-command', "Import-Module .\src\monad\monad\src\OSS\Pester; Import-Module .\bin\Modules\Microsoft.PowerShell.Platform; Invoke-Pester test/fullCLR -OutputFormat NUnitXml -OutputFile $testResultsFileFullCLR"
|
||||
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFileFullCLR))
|
||||
#
|
||||
# Fail the build, if tests failed
|
||||
$x = [xml](cat -raw .\TestsResults.FullCLR.xml)
|
||||
if ([int]$x.'test-results'.failures -gt 0)
|
||||
{
|
||||
throw "$($x.'test-results'.failures) tests in test/fullCLR failed"
|
||||
}
|
||||
$x = [xml](cat -raw .\TestsResults.xml)
|
||||
Write-Host -Foreground Green 'Upload CoreCLR test results'
|
||||
$x = [xml](cat -raw $testResultsFile)
|
||||
if ([int]$x.'test-results'.failures -gt 0)
|
||||
{
|
||||
throw "$($x.'test-results'.failures) tests in test/powershell failed"
|
||||
}
|
||||
Write-Host -Foreground Green 'Upload FullCLR test results'
|
||||
$x = [xml](cat -raw $testResultsFileFullCLR)
|
||||
if ([int]$x.'test-results'.failures -gt 0)
|
||||
{
|
||||
throw "$($x.'test-results'.failures) tests in test/fullCLR failed"
|
||||
}
|
||||
|
||||
|
||||
on_finish:
|
||||
- ps: |
|
||||
# Creating project artifact
|
||||
$zipFilePath = Join-Path $pwd "$(Split-Path $pwd -Leaf).zip"
|
||||
$zipFileFullPath = Join-Path $pwd "$(Split-Path $pwd -Leaf).FullCLR.zip"
|
||||
$name = git describe
|
||||
$zipFilePath = Join-Path $pwd "$name.zip"
|
||||
$zipFileFullPath = Join-Path $pwd "$name.FullCLR.zip"
|
||||
Add-Type -assemblyname System.IO.Compression.FileSystem
|
||||
[System.IO.Compression.ZipFile]::CreateFromDirectory("$pwd\bin", $zipFilePath)
|
||||
[System.IO.Compression.ZipFile]::CreateFromDirectory("$pwd\binFull", $zipFileFullPath)
|
||||
|
|
Loading…
Reference in a new issue