2
# See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md
5
# Optional: Include PublishBuildArtifacts task
6
enablePublishBuildArtifacts: false
8
# Optional: Enable publishing using release pipelines
9
enablePublishUsingPipelines: false
11
# Optional: Enable running the source-build jobs to build repo from source
12
enableSourceBuild: false
14
# Optional: Parameters for source-build template.
15
# See /eng/common/templates/jobs/source-build.yml for options
16
sourceBuildParameters: []
19
# Optional: Enable generating the graph files at the end of the build
21
# Optional: Include toolset dependencies in the generated graph files
24
# Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
27
# Optional: Override automatically derived dependsOn value for "publish build assets" job
28
publishBuildAssetsDependsOn: ''
30
# Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage.
31
publishAssetsImmediately: false
33
# Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml)
34
artifactsPublishingAdditionalParameters: ''
35
signingValidationAdditionalParameters: ''
37
# Optional: should run as a public build even in the internal project
38
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
41
enableSourceIndex: false
44
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
45
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
48
- ${{ each job in parameters.jobs }}:
49
- template: ../job/job.yml
51
# pass along parameters
52
${{ each parameter in parameters }}:
53
${{ if ne(parameter.key, 'jobs') }}:
54
${{ parameter.key }}: ${{ parameter.value }}
56
# pass along job properties
57
${{ each property in job }}:
58
${{ if ne(property.key, 'job') }}:
59
${{ property.key }}: ${{ property.value }}
63
- ${{ if eq(parameters.enableSourceBuild, true) }}:
64
- template: /eng/common/templates/jobs/source-build.yml
66
allCompletedJobId: Source_Build_Complete
67
${{ each parameter in parameters.sourceBuildParameters }}:
68
${{ parameter.key }}: ${{ parameter.value }}
70
- ${{ if eq(parameters.enableSourceIndex, 'true') }}:
71
- template: ../job/source-index-stage1.yml
73
runAsPublic: ${{ parameters.runAsPublic }}
74
${{ each parameter in parameters.sourceIndexParams }}:
75
${{ parameter.key }}: ${{ parameter.value }}
77
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
78
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
79
- template: ../job/publish-build-assets.yml
81
continueOnError: ${{ parameters.continueOnError }}
83
- ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}:
84
- ${{ each job in parameters.publishBuildAssetsDependsOn }}:
86
- ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}:
87
- ${{ each job in parameters.jobs }}:
89
- ${{ if eq(parameters.enableSourceBuild, true) }}:
90
- Source_Build_Complete
92
runAsPublic: ${{ parameters.runAsPublic }}
93
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
94
publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }}
95
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
96
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
97
signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}