pipeline.yml 3.2 KB
Newer Older
S
Steven Kirbach 已提交
1 2 3
parameters:

  # Needed because agent pool can't be read from a user-defined variable (Azure DevOps limitation)
S
Steven Kirbach 已提交
4 5
  # Defaults to dotnet-external-temp-vs2019
  agentPool: dotnet-external-temp-vs2019
S
Steven Kirbach 已提交
6 7 8 9 10

  # Needed because runAsPublic is used in template expressions, which can't read from user-defined variables
  # Defaults to true
  runAsPublic: true

S
Steven Kirbach 已提交
11 12
jobs:
- template: /eng/common/templates/jobs/job.yml
S
Steven Kirbach 已提交
13
  parameters:
S
Steven Kirbach 已提交
14 15 16 17 18 19
    enableMicrobuild: true
    enablePublishBuildArtifacts: true
    enablePublishTestResults: true
    enablePublishBuildAssets: true
    enableTelemetry: true
    helixRepo: dotnet/wpf
S
Steven Kirbach 已提交
20

S
Steven Kirbach 已提交
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
    jobs:
    - job: Windows_NT
      pool: ${{ parameters.agentPool }}
      variables:
        # needed for signing
        -name: _TeamName
         value: DotNetCore
        -name: _SignType
         value: test
        -name: _SignArgs
         value: ''

        # needed for darc (dependency flow) publishing
        -name: _PublishType
         value: none
        -name: _DotNetPublishToBlobFeed
         value: false
        -name: _PublishArgs
         value: ''
        -name: _OfficialBuildIdArgs
         value: ''

        # Override some values if we're building internally
        - ${{ if eq(parameters.runAsPublic, 'false') }}:
          # note: You have to use list syntax here (-name: value) or you will get errors about declaring the same variable multiple times
          - name: _PublishType
            value: blob
          - name: _SignType
            value: real
          - name: _DotNetPublishToBlobFeed
            value: true
          - group: DotNet-Blob-Feed
          - group: DotNet-Symbol-Server-Pats
          - name: _PublishBlobFeedUrl
            value: https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json

          # note: Even though they are referenced here, user defined variables (like $(_SignType)) are not resolved 
          # until the agent is running on the machine. They can be overridden any time before they are resolved,
          # like in the job matrix below (see Build_Debug)
          - name: _SignArgs
            value: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName)
          - name: _PublishArgs
            value: /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
              /p:DotNetPublishBlobFeedUrl=$(_PublishBlobFeedUrl)
              /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
              /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
              /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
          - name: _OfficialBuildIdArgs
            value: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
      strategy:
        matrix:
          Build_Debug:
            _BuildConfig: Debug
            # override some variables for debug
            _PublishType: none
            _SignType: test
            _DotNetPublishToBlobFeed : false
          Build_Release:
            _BuildConfig: Release
      steps:
      - checkout: self
        clean: true
      # Use utility script to run script command dependent on agent OS.
      - script: eng\common\cibuild.cmd
          -configuration $(_BuildConfig) 
          -prepareMachine
          $(_PublishArgs)
          $(_SignArgs)
          $(_OfficialBuildIdArgs)
        displayName: Windows Build / Publish