You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

165 lines
5.3 KiB

# Parameters ARE available in template expressions, and parameters can have default values,
# so they can be used to control yaml flow.
# trigger ci builds for completed checkins into main and any release branches
trigger:
branches:
include:
- main
- release/*
- internal/release/*
- internal/experimental/*
paths:
include:
- '*'
exclude:
- .github/*
- docs/*
- CODE-OF-CONDUCT.md
- CONTRIBUTING.md
- LICENSE.TXT
- PATENTS.TXT
- README.md
- SECURITY.md
- THIRD-PARTY-NOTICES.TXT
variables:
- name: TeamName
value: DotNetCore
# clean the local repo on the build agents
- name: Build.Repository.Clean
value: true
- ${{ 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
- name: EnableLoc
value: ${{ contains(variables['Build.SourceBranch'], 'main') }}
- name: NativeToolsOnMachine
value: true
# used for post-build phases
- group: DotNet-Winforms-SDLValidation-Params
- group: AzureDevOps-Artifact-Feeds-Pats
- name: _InternalRuntimeDownloadArgs
value: /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal
/p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
# Set up non-PR build from internal project
# needed for darc (dependency flow) publishing
- name: _PublishArgs
value: >-
/p:DotNetPublishUsingPipelines=true
- name: _OfficialBuildIdArgs
value: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
# needed for signing
- name: _SignType
value: real
- name: _SignArgs
value: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) /p:Sign=$(_Sign)
- name: _Sign
value: true
- ${{ if and(notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}:
- name: enableSourceIndex
value: true
resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
sdl:
policheck:
enabled: true
binskim:
enabled: true
tsa:
enabled: true
configFile: '$(Build.SourcesDirectory)/eng/pipelines/tsaoptions.json'
featureFlags:
autoBaseline: true
pool:
${{ if eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true') }}:
name: NetCore1ESPool-Svc-Internal
${{ else }}:
name: NetCore1ESPool-Internal
# image is described here - https://helix.dot.net/#1ESHostedPoolImagesWestUS-rg-Internal
image: windows.vs2022preview.amd64
os: windows
customBuildTags:
- ES365AIMigrationTooling
stages:
- stage: Build
jobs:
# Windows x64
- template: /eng/pipelines/build.yml@self
parameters:
name: Windows_x64
targetArchitecture: x64
skipTests: $(SkipTests)
# Windows x86
- template: /eng/pipelines/build.yml@self
parameters:
name: Windows_x86
targetArchitecture: x86
skipTests: $(SkipTests)
# Windows arm64
- template: /eng/pipelines/build.yml@self
parameters:
name: Windows_arm64
targetArchitecture: arm64
skipTests: $(SkipTests)
- ${{ if eq(variables.enableSourceIndex, 'true') }}:
- template: /eng/common/templates-official/job/source-index-stage1.yml@self
parameters:
sourceIndexBuildCommand: eng\cibuild.cmd -restore -build -configuration Release /p:Platform=x64 /p:TargetArchitecture=x64 /bl:msbuild.binlog
binlogPath: msbuild.binlog
pool:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022preview.amd64
- ${{ if eq(variables['EnableLoc'], 'true') }}:
- stage: OneLocBuild
displayName: Publish localizable content to OneLocBuild
jobs:
- template: /eng/common/templates-official/job/onelocbuild.yml@self
parameters:
MirrorRepo: winforms
UseCheckedInLocProjectJson: true
LclSource: lclFilesfromPackage
LclPackageId: 'LCL-JUNO-PROD-WINFORMS'
- stage: PublishAssetRegistry
displayName: Publish to Build Asset Registry
dependsOn: Build
variables:
- template: /eng/common/templates-official/variables/pool-providers.yml@self
jobs:
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates-official/job/publish-build-assets.yml@self
parameters:
publishUsingPipelines: true
pool:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022preview.amd64
# Copied from the arcade repo and modified for winforms
- template: /eng/common/templates-official/post-build/post-build.yml@self
parameters:
validateDependsOn: PublishAssetRegistry
publishingInfraVersion: 3
enableSymbolValidation: false
enableSigningValidation: false
enableNugetValidation: false
enableSourceLinkValidation: false