ebpf-for-windows/.pipelines/OneBranch.PullRequest.yml

158 строки
6.7 KiB
YAML

#################################################################################
# Onebranch Retail Pipeline #
# This pipeline was created by EasyStart from a sample located at: #
# https://aka.ms/obpipelines/easystart/samples #
# Documentation: https://aka.ms/obpipelines #
# Yaml Schema: https://aka.ms/obpipelines/yaml/schema #
# Retail Tasks: https://aka.ms/obpipelines/tasks #
# Support: https://aka.ms/onebranchsup #
#################################################################################
trigger: none # https://aka.ms/obpipelines/triggers
parameters: # parameters are shown up in ADO UI in a build queue time
- name: 'debug'
displayName: 'Enable debug output'
type: boolean
default: false
variables:
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
system.debug: ${{ parameters.debug }}
ENABLE_PRS_DELAYSIGN: 0
ROOT: $(Build.SourcesDirectory)
REPOROOT: $(Build.SourcesDirectory)
OUTPUTROOT: $(REPOROOT)\out
NUGET_XMLDOC_MODE: none
WindowsContainerImage: 'cdpxwin1809.azurecr.io/global/vse2019:latest' # Docker image which is used to build the project https://aka.ms/obpipelines/containers
resources:
repositories:
- repository: templates
type: git
name: OneBranch.Pipelines/GovernedTemplates
ref: refs/heads/main
extends:
template: v2/OneBranch.NonOfficial.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
parameters:
globalSdl: # https://aka.ms/obpipelines/sdl
tsa:
enabled: false # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode.
# credscan:
# suppressionsFile: $(Build.SourcesDirectory)\.config\CredScanSuppressions.json
policheck:
break: true # always break the build on policheck issues. You can disable it by setting to 'false'
# suppression:
# suppressionFile: $(Build.SourcesDirectory)\.gdn\global.gdnsuppress
git:
submodules: recursive
stages:
- stage: build
jobs:
- job: main
pool:
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs
variables: # More settings at https://aka.ms/obpipelines/yaml/jobs
ob_outputDirectory: '$(REPOROOT)\out' # this directory is uploaded to pipeline artifacts, reddog and cloudvault. More info at https://aka.ms/obpipelines/artifacts
ob_sdl_binskim_break: true # https://aka.ms/obpipelines/sdl
# ob_sdl_suppression_suppressionFile: $(Build.SourcesDirectory)\.gdn\job.gdnsuppress
steps:
- task: UseDotNet@2
continueOnError: true
inputs:
packageType: 'sdk'
useGlobalJson: true
performMultiLevelLookup: true
- task: onebranch.pipeline.version@1 # generates automatic version. For other versioning options check https://aka.ms/obpipelines/versioning
displayName: 'Setup BuildNumber'
inputs:
system: 'RevisionCounter'
major: '1'
minor: '0'
exclude_commit: true
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '$(Build.SourcesDirectory)\ebpf-user.sln'
feedsToUse: 'config'
nugetConfigPath: 'nuget.config'
- task: MSBuild@1
inputs:
solution: '$(Build.SourcesDirectory)\ebpf-user.sln'
msbuildLocationMethod: 'location'
msbuildLocation: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe'
platform: 'x64'
configuration: 'release'
msbuildArguments: '/t:Restore'
clean: true
maximumCpuCount: true
logProjectEvents: true
- task: MSBuild@1
inputs:
solution: '$(Build.SourcesDirectory)\ebpf-user.sln'
msbuildLocationMethod: 'location'
msbuildLocation: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe'
platform: 'x64'
configuration: 'release'
msbuildArguments: '/v:n /nr:false /flp1:Verbosity=d;LogFile=$(OUTPUTROOT)\logs\msbuild_x64_release.log;Encoding=UTF-8 /flp2:logfile=$(OUTPUTROOT)\logs\msbuild_x64_release.err;errorsonly /bl:$(OUTPUTROOT)\logs\msbuild_x64_release.binlog'
clean: true
maximumCpuCount: true
logProjectEvents: true
# - task: VSTest@2
# inputs:
# testSelector: 'testAssemblies'
# testAssemblyVer2: |
# **\*test*.dll
# !**\*TestAdapter.dll
# !**\obj\**
# searchFolder: '$(Build.SourcesDirectory)\out'
# resultsFolder: '$(Build.SourcesDirectory)\out\logs\TestResults'
# runInParallel: true
# codeCoverageEnabled: true
# testRunTitle: 'release_x64'
# platform: 'x64'
# configuration: 'release'
# publishRunAttachments: false
# failOnMinTestsNotRun: true
# rerunFailedTests: true
- task: PublishTestResults@2
displayName: 'Publish test results'
inputs:
testResultsFormat: VSTest
testResultsFiles: '$(Build.SourcesDirectory)\out\logs\TestResults\**\*.trx'
failTaskOnFailedTests: true
# https://aka.ms/obpipelines/cloudtest
# uncomment this section and edit parameters to enable CloudTest
# - stage: cloudtest
# dependsOn: build_stage
# jobs:
# - job: cloudtestjob
# pool:
# type: cloudtestagentless
# continueOnError: true
# steps:
# - task: CloudTestServerBuildTask@1
# displayName: 'CloudTest'
# inputs:
# connectedServiceName: 'CloudTest-prod'
# cloudTestTenant: 'onebranchtest'
# testMapLocation: '[BuildRoot]\ClassLibrary.UnitTest\TestMapCdp.xml'
# pipelineArtifactName: 'drop_build_main'
# pipelineArtifactBuildUrl: '$(System.TaskDefinitionsUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)'
# parserProperties: 'worker:VsTestVersion=V150;CodeCoverageType=Dynamic;worker:TestVar=$(RUN_PIPELINE_VARIABLE)'
# cacheEnabled: false
# scheduleBuildRequesterAlias: 'azbldrun'