mirror of
https://github.com/PowerShell/PowerShell.git
synced 2024-11-23 17:53:58 +08:00
158 lines
4.7 KiB
YAML
158 lines
4.7 KiB
YAML
name: PR-$(System.PullRequest.PullRequestNumber)-$(Date:yyyyMMdd)$(Rev:.rr)
|
|
trigger:
|
|
# Batch merge builds together while a merge build is running
|
|
batch: true
|
|
branches:
|
|
include:
|
|
- master
|
|
- release*
|
|
- feature*
|
|
paths:
|
|
include:
|
|
- '*'
|
|
exclude:
|
|
- /.vsts-ci/misc-analysis.yml
|
|
- /.github/ISSUE_TEMPLATE/*
|
|
- /.dependabot/config.yml
|
|
pr:
|
|
branches:
|
|
include:
|
|
- master
|
|
- release*
|
|
- feature*
|
|
paths:
|
|
include:
|
|
- '*'
|
|
exclude:
|
|
- tools/releaseBuild/*
|
|
- tools/releaseBuild/azureDevOps/templates/*
|
|
- /.vsts-ci/misc-analysis.yml
|
|
- /.github/ISSUE_TEMPLATE/*
|
|
- /.dependabot/config.yml
|
|
|
|
variables:
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
|
POWERSHELL_TELEMETRY_OPTOUT: 1
|
|
# Avoid expensive initialization of dotnet cli, see: https://donovanbrown.com/post/Stop-wasting-time-during-NET-Core-builds
|
|
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
|
|
__SuppressAnsiEscapeSequences: 1
|
|
|
|
resources:
|
|
- repo: self
|
|
clean: true
|
|
|
|
stages:
|
|
- stage: BuildLinux
|
|
displayName: Build for Linux
|
|
jobs:
|
|
- template: templates/ci-build.yml
|
|
parameters:
|
|
pool: ubuntu-16.04
|
|
jobName: linux_build
|
|
displayName: linux Build
|
|
|
|
- stage: TestLinux
|
|
displayName: Test for Linux
|
|
jobs:
|
|
- job: linux_test
|
|
pool:
|
|
vmImage: ubuntu-16.04
|
|
displayName: Linux Test
|
|
|
|
steps:
|
|
- pwsh: |
|
|
Get-ChildItem -Path env:
|
|
displayName: Capture Environment
|
|
condition: succeededOrFailed()
|
|
|
|
- task: DownloadBuildArtifacts@0
|
|
displayName: 'Download Build Artifacts'
|
|
inputs:
|
|
downloadType: specific
|
|
itemPattern: |
|
|
build/**/*
|
|
xunit/**/*
|
|
downloadPath: '$(System.ArtifactsDirectory)'
|
|
|
|
- pwsh: |
|
|
Get-ChildItem "$(System.ArtifactsDirectory)\*" -Recurse
|
|
displayName: 'Capture Artifacts Directory'
|
|
continueOnError: true
|
|
|
|
- pwsh: |
|
|
Import-Module .\tools\ci.psm1
|
|
Invoke-CIInstall -SkipUser
|
|
displayName: Bootstrap
|
|
condition: succeededOrFailed()
|
|
|
|
- pwsh: |
|
|
Import-Module .\build.psm1
|
|
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
|
$output = (Get-PSOptions).Output
|
|
$rootPath = Split-Path (Split-Path $output)
|
|
Expand-Archive -Path '$(System.ArtifactsDirectory)\build\build.zip' -DestinationPath $rootPath -Force
|
|
|
|
## Fix permissions
|
|
Get-ChildItem $rootPath -Recurse | ForEach-Object {
|
|
if ($_ -is [System.IO.DirectoryInfo]) {
|
|
chmod +rwx $_.FullName
|
|
} else {
|
|
chmod +rw $_.FullName
|
|
}
|
|
}
|
|
chmod a+x $output
|
|
|
|
Write-Host "=== Capture Unzipped Directory ==="
|
|
Get-ChildItem $rootPath -Recurse
|
|
displayName: 'Unzip Build and Fix Permissions'
|
|
condition: succeeded()
|
|
|
|
- pwsh: |
|
|
Import-Module .\tools\ci.psm1
|
|
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
|
Invoke-CITest -Purpose UnelevatedPesterTests -TagSet CI
|
|
displayName: Test - UnelevatedPesterTests - CI
|
|
condition: succeeded()
|
|
|
|
- pwsh: |
|
|
Import-Module .\tools\ci.psm1
|
|
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
|
Invoke-CITest -Purpose ElevatedPesterTests -TagSet CI
|
|
displayName: Test - ElevatedPesterTests - CI
|
|
condition: succeededOrFailed()
|
|
|
|
- pwsh: |
|
|
Import-Module .\tools\ci.psm1
|
|
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
|
Invoke-CITest -Purpose UnelevatedPesterTests -TagSet Others
|
|
displayName: Test - UnelevatedPesterTests - Others
|
|
condition: succeededOrFailed()
|
|
|
|
- pwsh: |
|
|
Import-Module .\tools\ci.psm1
|
|
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
|
Invoke-CITest -Purpose ElevatedPesterTests -TagSet Others
|
|
displayName: Test - ElevatedPesterTests - Others
|
|
condition: succeededOrFailed()
|
|
|
|
- pwsh: |
|
|
Import-Module .\build.psm1
|
|
$xUnitTestResultsFile = "$(System.ArtifactsDirectory)\xunit\xUnitTestResults.xml"
|
|
Test-XUnitTestResults -TestResultsFile $xUnitTestResultsFile
|
|
displayName: Verify xUnit Test Results
|
|
condition: succeededOrFailed()
|
|
|
|
- stage: CodeCovTestPackage
|
|
displayName: CodeCoverage and Test Packages
|
|
dependsOn: [] # by specifying an empty array, this stage doesn't depend on the stage before it
|
|
jobs:
|
|
- job: CodeCovTestPackage
|
|
displayName: CodeCoverage and Test Packages
|
|
pool:
|
|
vmImage: ubuntu-16.04
|
|
steps:
|
|
- pwsh: |
|
|
Import-Module .\tools\ci.psm1
|
|
New-CodeCoverageAndTestPackage
|
|
displayName: CodeCoverage and Test Package
|