diff --git a/azure-pipelines-pr.yml b/azure-pipelines-pr.yml new file mode 100644 index 00000000000..96638fb9b2c --- /dev/null +++ b/azure-pipelines-pr.yml @@ -0,0 +1,92 @@ +# 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: _DotNetArtifactsCategory + value: WINDOWSDESKTOP + - name: _DotNetValidationArtifactsCategory + value: WINDOWSDESKTOP + - ${{ if or(startswith(variables['Build.SourceBranch'], 'refs/heads/release/'), startswith(variables['Build.SourceBranch'], 'refs/heads/internal/release/'), eq(variables['Build.Reason'], 'Manual')) }}: + - name: PostBuildSign + value: false + - ${{ else }}: + - 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/* + - internal/release/* + - experimental/* + paths: + exclude: + - Documentation/* + +pr: + autoCancel: true + branches: + include: + - main + - release/* + - experimental/* + - feature/win11theming/staging + - feature/win11theming/release + paths: + exclude: + - Documentation/* + +# Call the pipeline.yml template, which does the real work +stages: +- stage: build + displayName: Build + jobs: + - template: /eng/pipeline.yml + parameters: + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + 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'