|
|
@@ -1,130 +0,0 @@
|
|
|
-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: ''
|
|
|
- # Optional: display name of the phase
|
|
|
- displayName: ''
|
|
|
-
|
|
|
- # Optional: condition for the job to run
|
|
|
- condition: ''
|
|
|
-
|
|
|
- # Optional: dependencies of the phase
|
|
|
- dependsOn: ''
|
|
|
-
|
|
|
- # Required: A defined YAML queue
|
|
|
- queue: {}
|
|
|
-
|
|
|
- # Required: build steps
|
|
|
- steps: []
|
|
|
-
|
|
|
- # Optional: variables
|
|
|
- variables: {}
|
|
|
-
|
|
|
- # 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
|
|
|
-
|
|
|
- ## 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 }}
|
|
|
-
|
|
|
- ${{ if ne(parameters.displayName, '') }}:
|
|
|
- displayName: ${{ parameters.displayName }}
|
|
|
-
|
|
|
- ${{ if ne(parameters.condition, '') }}:
|
|
|
- condition: ${{ parameters.condition }}
|
|
|
-
|
|
|
- ${{ if ne(parameters.dependsOn, '') }}:
|
|
|
- dependsOn: ${{ parameters.dependsOn }}
|
|
|
-
|
|
|
- queue: ${{ parameters.queue }}
|
|
|
-
|
|
|
- ${{ if ne(parameters.variables, '') }}:
|
|
|
- variables:
|
|
|
- ${{ insert }}: ${{ parameters.variables }}
|
|
|
-
|
|
|
- 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)
|
|
|
- runAsPublic: ${{ parameters.runAsPublic }}
|
|
|
-
|
|
|
- - ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
|
|
- # Internal only resource, and Microbuild signing shouldn't be applied to PRs.
|
|
|
- - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
|
- - task: MicroBuildSigningPlugin@2
|
|
|
- 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
|
|
|
- - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
|
- - 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)
|
|
|
-
|
|
|
- - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
|
- - 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'))
|