2018-10-17 22:17:40 +00:00
|
|
|
parameters:
|
|
|
|
# Optional: Clean sources before building
|
|
|
|
clean: true
|
|
|
|
|
|
|
|
# Optional: Git fetch depth
|
|
|
|
fetchDepth: ''
|
|
|
|
|
|
|
|
# Optional: name of the phase (not specifying phase name may cause name collisions)
|
|
|
|
name: ''
|
2018-11-08 01:51:56 +00:00
|
|
|
# Optional: display name of the phase
|
|
|
|
displayName: ''
|
|
|
|
|
|
|
|
# Optional: condition for the job to run
|
|
|
|
condition: ''
|
|
|
|
|
|
|
|
# Optional: dependencies of the phase
|
|
|
|
dependsOn: ''
|
2018-10-17 22:17:40 +00:00
|
|
|
|
|
|
|
# Required: A defined YAML queue
|
|
|
|
queue: {}
|
|
|
|
|
|
|
|
# Required: build steps
|
|
|
|
steps: []
|
|
|
|
|
|
|
|
# Optional: variables
|
|
|
|
variables: {}
|
|
|
|
|
2018-11-08 01:51:56 +00:00
|
|
|
# Optional: should run as a public build even in the internal project
|
|
|
|
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
|
|
|
|
runAsPublic: false
|
|
|
|
|
2018-10-17 22:17:40 +00:00
|
|
|
## Telemetry variables
|
|
|
|
|
|
|
|
# Optional: enable sending telemetry
|
|
|
|
# if 'true', these "variables" must be specified in the variables object or as part of the queue matrix
|
|
|
|
# _HelixBuildConfig - differentiate between Debug, Release, other
|
|
|
|
# _HelixSource - Example: build/product
|
|
|
|
# _HelixType - Example: official/dotnet/arcade/$(Build.SourceBranch)
|
|
|
|
enableTelemetry: false
|
|
|
|
|
|
|
|
# Optional: Enable installing Microbuild plugin
|
|
|
|
# if 'true', these "variables" must be specified in the variables object or as part of the queue matrix
|
|
|
|
# _TeamName - the name of your team
|
|
|
|
# _SignType - 'test' or 'real'
|
|
|
|
enableMicrobuild: false
|
|
|
|
|
|
|
|
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
|
|
|
|
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
|
|
|
|
|
|
|
|
phases:
|
|
|
|
- phase: ${{ parameters.name }}
|
|
|
|
|
2018-11-08 01:51:56 +00:00
|
|
|
${{ if ne(parameters.displayName, '') }}:
|
|
|
|
displayName: ${{ parameters.displayName }}
|
|
|
|
|
|
|
|
${{ if ne(parameters.condition, '') }}:
|
|
|
|
condition: ${{ parameters.condition }}
|
|
|
|
|
|
|
|
${{ if ne(parameters.dependsOn, '') }}:
|
|
|
|
dependsOn: ${{ parameters.dependsOn }}
|
|
|
|
|
2018-10-17 22:17:40 +00:00
|
|
|
queue: ${{ parameters.queue }}
|
|
|
|
|
|
|
|
${{ if ne(parameters.variables, '') }}:
|
2018-11-08 01:51:56 +00:00
|
|
|
variables:
|
2018-10-22 05:07:26 +00:00
|
|
|
${{ insert }}: ${{ parameters.variables }}
|
2018-10-17 22:17:40 +00:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- checkout: self
|
|
|
|
clean: ${{ parameters.clean }}
|
|
|
|
${{ if ne(parameters.fetchDepth, '') }}:
|
|
|
|
fetchDepth: ${{ parameters.fetchDepth }}
|
|
|
|
|
|
|
|
- ${{ if eq(parameters.enableTelemetry, 'true') }}:
|
|
|
|
- template: /eng/common/templates/steps/telemetry-start.yml
|
|
|
|
parameters:
|
|
|
|
buildConfig: $(_HelixBuildConfig)
|
|
|
|
helixSource: $(_HelixSource)
|
|
|
|
helixType: $(_HelixType)
|
2018-11-08 01:51:56 +00:00
|
|
|
runAsPublic: ${{ parameters.runAsPublic }}
|
2018-10-17 22:17:40 +00:00
|
|
|
|
|
|
|
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
|
|
|
# Internal only resource, and Microbuild signing shouldn't be applied to PRs.
|
2018-11-08 01:51:56 +00:00
|
|
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
|
|
- task: MicroBuildSigningPlugin@2
|
2018-10-17 22:17:40 +00:00
|
|
|
displayName: Install MicroBuild plugin
|
|
|
|
inputs:
|
|
|
|
signType: $(_SignType)
|
|
|
|
zipSources: false
|
|
|
|
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
|
|
|
|
|
|
|
|
env:
|
|
|
|
TeamName: $(_TeamName)
|
|
|
|
continueOnError: false
|
|
|
|
condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
|
|
|
|
|
|
|
# Run provided build steps
|
|
|
|
- ${{ parameters.steps }}
|
|
|
|
|
|
|
|
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
|
|
|
# Internal only resources
|
2018-11-08 01:51:56 +00:00
|
|
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
2018-10-17 22:17:40 +00:00
|
|
|
- task: MicroBuildCleanup@1
|
|
|
|
displayName: Execute Microbuild cleanup tasks
|
|
|
|
condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
|
|
|
env:
|
|
|
|
TeamName: $(_TeamName)
|
|
|
|
|
|
|
|
- ${{ if eq(parameters.enableTelemetry, 'true') }}:
|
|
|
|
- template: /eng/common/templates/steps/telemetry-end.yml
|
|
|
|
parameters:
|
|
|
|
helixSource: $(_HelixSource)
|
|
|
|
helixType: $(_HelixType)
|
|
|
|
|
2018-11-08 01:51:56 +00:00
|
|
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
2018-10-22 05:07:26 +00:00
|
|
|
- task: CopyFiles@2
|
|
|
|
displayName: Gather Asset Manifests
|
|
|
|
inputs:
|
|
|
|
SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
|
|
|
|
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
|
|
|
|
continueOnError: false
|
|
|
|
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
|
|
displayName: Push Asset Manifests
|
|
|
|
inputs:
|
|
|
|
PathtoPublish: '$(Build.StagingDirectory)/AssetManifests'
|
|
|
|
PublishLocation: Container
|
|
|
|
ArtifactName: AssetManifests
|
|
|
|
continueOnError: false
|
|
|
|
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|