Per dotnet/cli#1783, this should resolve PowerShell/PowerShell#638. Unfortunately, per dotnet/cli#1839, the Ubuntu package feed is out-of-date. So now Travis and AppVeyor aren't quite in sync. This is not great, but the Ubuntu version of CLI does not have the same regression that the Windows version had. The readme has been updated to note how to install an actually up-to-date copy on Linux.
82 lines
3.5 KiB
YAML
82 lines
3.5 KiB
YAML
version: 0.2.0.{build}
|
|
|
|
environment:
|
|
priv_key:
|
|
secure: <encryped-value>
|
|
|
|
cache:
|
|
- '%LocalAppData%\Microsoft\dotnet'
|
|
|
|
notifications:
|
|
- provider: Slack
|
|
incoming_webhook:
|
|
secure: bwwXBTeJBtRFea6FSQKzVENLwL0AOeusUSUFIh/TeHA4y0UFk7bC9+OcxgZW+YfIC0VZyTpZClJHlPFFHSgiQs4g9om17RxzJEeq4EjsW5g=
|
|
|
|
install:
|
|
- ps: $fileContent = "-----BEGIN RSA PRIVATE KEY-----`n"
|
|
- ps: $fileContent += $env:priv_key.Replace(' ', "`n")
|
|
- ps: $fileContent += "`n-----END RSA PRIVATE KEY-----`n"
|
|
- ps: Set-Content c:\users\appveyor\.ssh\id_rsa $fileContent
|
|
- 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.001718 -channel beta
|
|
|
|
build_script:
|
|
- ps: |
|
|
$env:Path += ";$env:LocalAppData\Microsoft\dotnet\cli\bin"
|
|
dotnet --version
|
|
Import-Module .\PowerShellGitHubDev.psm1
|
|
Start-PSBuild
|
|
Start-PSBuild -FullCLR
|
|
|
|
test_script:
|
|
- ps: |
|
|
# fail tests execution, if any PS error detected
|
|
$ErrorActionPreference = 'Stop'
|
|
#
|
|
# CoreCLR
|
|
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
|
|
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
|
|
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
|
|
$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)
|
|
|
|
@(
|
|
# You can add other artifacts here
|
|
$zipFilePath,
|
|
$zipFileFullPath
|
|
) | % {
|
|
Write-Host "Pushing package $_ as Appveyor artifact"
|
|
Push-AppveyorArtifact $_
|
|
}
|