diff --git a/azure-pipelines-pr.yml b/azure-pipelines-pr.yml new file mode 100644 index 00000000000..8c4f43a99f0 --- /dev/null +++ b/azure-pipelines-pr.yml @@ -0,0 +1,100 @@ +# This is a simple wrapper for eng/pipeline.yml to get around the limitation of +# user-defined variables not being available in yaml template expressions. + +# Parameters ARE available in template expressions, and parameters can have default values, +# so they can be used to control yaml flow. +# + +variables: + # clean the local repo on the build agents + - name: Build.Repository.Clean + value: true + - name: _PublishUsingPipelines + value: true + - name: _DotNetArtifactsCategory + value: WINDOWSDESKTOP + - name: _DotNetValidationArtifactsCategory + value: WINDOWSDESKTOP + - name: PostBuildSign + value: true + + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - group: DotNet-Wpf-SDLValidation-Params + + +# This is set in the pipeline directly +# When set to false, CI tests will not be enabled in builds. +# +# _ContinuousIntegrationTestsEnabled: false + +# Setting batch to true, triggers one build at a time. +# if there is a push while a build in progress, it will wait, +# until the running build finishes, and produce a build with all the changes +# +# only trigger ci builds for the master and release branches +trigger: + batch: true + branches: + include: + - main + - release/3.* + - release/5.* + - release/6.* + - internal/release/5.* + - internal/release/6.* + - experimental/* + paths: + exclude: + - Documentation/* + +pr: + autoCancel: true + branches: + include: + - main + - release/3.* + - internal/release/3.* + - release/5.* + - release/6.* + - experimental/* + paths: + exclude: + - Documentation/* + +# Call the pipeline.yml template, which does the real work +stages: +- stage: build + displayName: Build + jobs: + - template: /eng/pipeline.yml + parameters: + enablePublishUsingPipelines: $(_PublishUsingPipelines) + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + # agent pool can't be read from a user-defined variable (Azure DevOps limitation) + pool: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals windows.vs2019.amd64 + # runAsPublic is used in expressions, which can't read from user-defined variables + runAsPublic: false + +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: eng\common\templates\post-build\post-build.yml + parameters: + publishingInfraVersion: 3 + enableSymbolValidation: false + enableSigningValidation: false + enableNugetValidation: false + enableSourceLinkValidation: false + # This is to enable SDL runs part of Post-Build Validation Stage + SDLValidationParameters: + enable: false + params: ' -SourceToolsList @("policheck","credscan") + -TsaInstanceURL $(_TsaInstanceURL) + -TsaProjectName $(_TsaProjectName) + -TsaNotificationEmail $(_TsaNotificationEmail) + -TsaCodebaseAdmin $(_TsaCodebaseAdmin) + -TsaBugAreaPath $(_TsaBugAreaPath) + -TsaIterationPath $(_TsaIterationPath) + -TsaRepositoryName "wpf" + -TsaCodebaseName "wpf" + -TsaPublish $True'