134 строки
3.2 KiB
YAML
134 строки
3.2 KiB
YAML
trigger:
|
|
- master
|
|
- dev/*
|
|
- rel/*
|
|
|
|
pr:
|
|
- master
|
|
- dev/*
|
|
- rel/*
|
|
|
|
pool:
|
|
vmImage: windows-2019
|
|
|
|
variables:
|
|
BuildConfiguration: Release
|
|
|
|
jobs:
|
|
### BUILD ###
|
|
- job: BuildBits
|
|
timeoutInMinutes: 60
|
|
|
|
steps:
|
|
- task: BatchScript@1
|
|
inputs:
|
|
filename: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\Common7\\Tools\\VsDevCmd.bat"
|
|
arguments: -no_logo
|
|
modifyEnvironment: true
|
|
displayName: Setup Environment Variables
|
|
|
|
- task: NuGetToolInstaller@0
|
|
displayName: Use NuGet 5.6.0
|
|
inputs:
|
|
versionSpec: 5.6.0
|
|
|
|
- task: DotNetCoreCLI@2
|
|
inputs:
|
|
command: custom
|
|
custom: tool
|
|
arguments: install --tool-path . nbgv
|
|
displayName: Install NBGV tool
|
|
|
|
- script: nbgv cloud
|
|
displayName: Set Version
|
|
|
|
#- powershell: .\build\Install-WindowsSdkISO.ps1 19041
|
|
# displayName: Insider SDK
|
|
|
|
- powershell: .\build\build.ps1 -target=Build
|
|
displayName: Build
|
|
|
|
### Unit Tests ###
|
|
|
|
- powershell: .\build\build.ps1 -target=Test
|
|
displayName: Test
|
|
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
testResultsFormat: 'VSTest'
|
|
testResultsFiles: '**/VsTestResults*.trx'
|
|
displayName: Publish Test Results
|
|
condition: always()
|
|
|
|
- task: PublishPipelineArtifact@1
|
|
displayName: Publish Test WexLogFileOutput
|
|
inputs:
|
|
targetPath: .\build\WexLogFileOutput
|
|
artifactName: WexUnitTestErrorLogFileOutput
|
|
condition: failed()
|
|
|
|
### UI Integration Tests ###
|
|
|
|
- powershell: .\build\build.ps1 -target=UITest
|
|
displayName: UI Integration Tests
|
|
|
|
- task: PublishPipelineArtifact@1
|
|
displayName: Publish UI Test Results
|
|
inputs:
|
|
targetPath: .\build\UITestResults.wtl
|
|
artifactName: WexUITestLogFileOutput
|
|
condition: always()
|
|
|
|
### Package ###
|
|
|
|
- powershell: .\build\build.ps1 -target=Package
|
|
displayName: Package
|
|
|
|
- task: PowerShell@2
|
|
displayName: Authenticode Sign Packages
|
|
inputs:
|
|
filePath: build/Sign-Package.ps1
|
|
env:
|
|
SignClientUser: $(SignClientUser)
|
|
SignClientSecret: $(SignClientSecret)
|
|
ArtifactDirectory: bin\nupkg
|
|
condition: and(succeeded(), not(eq(variables['build.reason'], 'PullRequest')), not(eq(variables['SignClientSecret'], '')), not(eq(variables['SignClientUser'], '')))
|
|
|
|
- task: PublishPipelineArtifact@1
|
|
displayName: Publish Package Artifacts
|
|
inputs:
|
|
targetPath: .\bin\nupkg
|
|
artifactName: Packages
|
|
|
|
### Smoke Tests ###
|
|
|
|
- job: SmokeTests
|
|
dependsOn: BuildBits
|
|
timeoutInMinutes: 60
|
|
|
|
steps:
|
|
- task: DownloadPipelineArtifact@2
|
|
displayName: Download NuGet Packages Artifact
|
|
inputs:
|
|
artifact: Packages
|
|
path: .\bin\nupkg
|
|
|
|
- powershell: .\build\build.ps1 -target=SmokeTest
|
|
displayName: SmokeTest
|
|
|
|
- task: CopyFiles@2
|
|
inputs:
|
|
sourceFolder: .\SmokeTests\AppPackages
|
|
contents: '**\*.msixbundle'
|
|
targetFolder: $(build.artifactstagingdirectory)\SmokeTestBundles
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: Publish Smoke Test Artifacts
|
|
inputs:
|
|
pathToPublish: $(build.artifactstagingdirectory)\SmokeTestBundles
|
|
artifactType: container
|
|
artifactName: SmokeTestBundles
|
|
|
|
- powershell: .\SmokeTests\SmokeTestAnalysis.ps1
|
|
displayName: Analyze Package Sizes
|