|
| 1 | +parameters: |
| 2 | + - name: official |
| 3 | + type: boolean |
| 4 | + default: false |
| 5 | + - name: branding |
| 6 | + type: string |
| 7 | + default: Release |
| 8 | + values: |
| 9 | + - Release |
| 10 | + - Preview |
| 11 | + - Canary |
| 12 | + - Dev |
| 13 | + - name: buildTerminal |
| 14 | + type: boolean |
| 15 | + default: true |
| 16 | + - name: buildConPTY |
| 17 | + type: boolean |
| 18 | + default: false |
| 19 | + - name: buildWPF |
| 20 | + type: boolean |
| 21 | + default: false |
| 22 | + - name: pgoBuildMode |
| 23 | + type: string |
| 24 | + default: Optimize |
| 25 | + values: |
| 26 | + - Optimize |
| 27 | + - Instrument |
| 28 | + - None |
| 29 | + - name: buildConfigurations |
| 30 | + type: object |
| 31 | + default: |
| 32 | + - Release |
| 33 | + - name: buildPlatforms |
| 34 | + type: object |
| 35 | + default: |
| 36 | + - x64 |
| 37 | + - x86 |
| 38 | + - arm64 |
| 39 | + - name: codeSign |
| 40 | + type: boolean |
| 41 | + default: true |
| 42 | + - name: terminalInternalPackageVersion |
| 43 | + type: string |
| 44 | + default: '0.0.8' |
| 45 | + |
| 46 | + - name: publishSymbolsToPublic |
| 47 | + type: boolean |
| 48 | + default: true |
| 49 | + - name: symbolExpiryTime |
| 50 | + type: string |
| 51 | + default: 36530 # This is the default from PublishSymbols@2 |
| 52 | + - name: symbolPublishingSubscription |
| 53 | + type: string |
| 54 | + - name: symbolPublishingProject |
| 55 | + type: string |
| 56 | + |
| 57 | + - name: extraPublishJobs |
| 58 | + type: object |
| 59 | + default: [] |
| 60 | + - name: signingIdentity |
| 61 | + type: object |
| 62 | + default: {} |
| 63 | + |
| 64 | +resources: |
| 65 | + repositories: |
| 66 | + - repository: 1esPipelines |
| 67 | + type: git |
| 68 | + name: 1ESPipelineTemplates/1ESPipelineTemplates |
| 69 | + ref: refs/tags/release |
| 70 | + |
| 71 | +extends: |
| 72 | + ${{ if eq(parameters.official, true) }}: |
| 73 | + template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines |
| 74 | + ${{ else }}: |
| 75 | + template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines |
| 76 | + parameters: |
| 77 | + customBuildTags: |
| 78 | + - 1ES.PT.ViaStartRight |
| 79 | + pool: |
| 80 | + name: SHINE-INT-L |
| 81 | + os: windows |
| 82 | + sdl: |
| 83 | + tsa: |
| 84 | + enabled: true |
| 85 | + configFile: '$(Build.SourcesDirectory)\build\config\tsa.json' |
| 86 | + binskim: |
| 87 | + enabled: true |
| 88 | + policheck: |
| 89 | + enabled: false |
| 90 | + severity: Note |
| 91 | + baseline: |
| 92 | + baselineFile: '$(Build.SourcesDirectory)\build\config\release.gdnbaselines' |
| 93 | + suppressionSet: default |
| 94 | + |
| 95 | + stages: |
| 96 | + - stage: Build |
| 97 | + displayName: Build |
| 98 | + dependsOn: [] |
| 99 | + jobs: |
| 100 | + - template: ./build/pipelines/templates-v2/job-build-project.yml@self |
| 101 | + parameters: |
| 102 | + outerTemplateContext: |
| 103 | + outputs: |
| 104 | + - output: pipelineArtifact |
| 105 | + targetPath: $(JobOutputDirectory) |
| 106 | + artifactName: $(JobOutputArtifactName) |
| 107 | + publishArtifacts: false # Handled by 1ESPT |
| 108 | + branding: ${{ parameters.branding }} |
| 109 | + buildTerminal: ${{ parameters.buildTerminal }} |
| 110 | + buildConPTY: ${{ parameters.buildConPTY }} |
| 111 | + buildWPF: ${{ parameters.buildWPF }} |
| 112 | + pgoBuildMode: ${{ parameters.pgoBuildMode }} |
| 113 | + buildConfigurations: ${{ parameters.buildConfigurations }} |
| 114 | + buildPlatforms: ${{ parameters.buildPlatforms }} |
| 115 | + generateSbom: false # this is handled by 1ESPT |
| 116 | + removeAllNonSignedFiles: true # appease the overlords |
| 117 | + codeSign: ${{ parameters.codeSign }} |
| 118 | + signingIdentity: ${{ parameters.signingIdentity }} |
| 119 | + beforeBuildSteps: |
| 120 | + - template: ./build/pipelines/templates-v2/steps-setup-versioning.yml@self |
| 121 | + |
| 122 | + - template: ./build/pipelines/templates-v2/steps-install-terrapin.yml@self |
| 123 | + |
| 124 | + - task: UniversalPackages@0 |
| 125 | + displayName: Download terminal-internal Universal Package |
| 126 | + inputs: |
| 127 | + feedListDownload: 2b3f8893-a6e8-411f-b197-a9e05576da48 |
| 128 | + packageListDownload: e82d490c-af86-4733-9dc4-07b772033204 |
| 129 | + versionListDownload: ${{ parameters.terminalInternalPackageVersion }} |
| 130 | + |
| 131 | + - ${{ if eq(parameters.buildWPF, true) }}: |
| 132 | + # Add an Any CPU build flavor for the WPF control bits |
| 133 | + - template: ./build/pipelines/templates-v2/job-build-project.yml@self |
| 134 | + parameters: |
| 135 | + outerTemplateContext: |
| 136 | + outputs: |
| 137 | + - output: pipelineArtifact |
| 138 | + targetPath: $(JobOutputDirectory) |
| 139 | + artifactName: $(JobOutputArtifactName) |
| 140 | + publishArtifacts: false # Handled by 1ESPT |
| 141 | + jobName: BuildWPF |
| 142 | + branding: ${{ parameters.branding }} |
| 143 | + buildTerminal: false |
| 144 | + buildWPFDotNetComponents: true |
| 145 | + buildConfigurations: ${{ parameters.buildConfigurations }} |
| 146 | + buildPlatforms: |
| 147 | + - Any CPU |
| 148 | + generateSbom: false # this is handled by 1ESPT |
| 149 | + removeAllNonSignedFiles: true # appease the overlords |
| 150 | + codeSign: ${{ parameters.codeSign }} |
| 151 | + signingIdentity: ${{ parameters.signingIdentity }} |
| 152 | + beforeBuildSteps: |
| 153 | + - template: ./build/pipelines/templates-v2/steps-setup-versioning.yml@self |
| 154 | + # WPF doesn't need the localizations or the universal package, but if it does... put them here. |
| 155 | + |
| 156 | + - stage: Package |
| 157 | + displayName: Package |
| 158 | + dependsOn: [Build] |
| 159 | + jobs: |
| 160 | + - ${{ if eq(parameters.buildTerminal, true) }}: |
| 161 | + - template: ./build/pipelines/templates-v2/job-merge-msix-into-bundle.yml@self |
| 162 | + parameters: |
| 163 | + pool: |
| 164 | + name: SHINE-INT-S |
| 165 | + os: windows |
| 166 | + outerTemplateContext: |
| 167 | + outputs: |
| 168 | + - output: pipelineArtifact |
| 169 | + targetPath: $(JobOutputDirectory) |
| 170 | + artifactName: $(JobOutputArtifactName) |
| 171 | + publishArtifacts: false # Handled by 1ESPT |
| 172 | + jobName: Bundle |
| 173 | + branding: ${{ parameters.branding }} |
| 174 | + buildConfigurations: ${{ parameters.buildConfigurations }} |
| 175 | + buildPlatforms: ${{ parameters.buildPlatforms }} |
| 176 | + generateSbom: false # Handled by 1ESPT |
| 177 | + codeSign: ${{ parameters.codeSign }} |
| 178 | + signingIdentity: ${{ parameters.signingIdentity }} |
| 179 | + |
| 180 | + - ${{ if eq(parameters.buildConPTY, true) }}: |
| 181 | + - template: ./build/pipelines/templates-v2/job-package-conpty.yml@self |
| 182 | + parameters: |
| 183 | + pool: |
| 184 | + name: SHINE-INT-S |
| 185 | + os: windows |
| 186 | + outerTemplateContext: |
| 187 | + outputs: |
| 188 | + - output: pipelineArtifact |
| 189 | + targetPath: $(JobOutputDirectory) |
| 190 | + artifactName: $(JobOutputArtifactName) |
| 191 | + publishArtifacts: false # Handled by 1ESPT |
| 192 | + buildConfigurations: ${{ parameters.buildConfigurations }} |
| 193 | + buildPlatforms: ${{ parameters.buildPlatforms }} |
| 194 | + generateSbom: false # this is handled by 1ESPT |
| 195 | + codeSign: ${{ parameters.codeSign }} |
| 196 | + signingIdentity: ${{ parameters.signingIdentity }} |
| 197 | + |
| 198 | + - ${{ if eq(parameters.buildWPF, true) }}: |
| 199 | + - template: ./build/pipelines/templates-v2/job-build-package-wpf.yml@self |
| 200 | + parameters: |
| 201 | + pool: |
| 202 | + name: SHINE-INT-S |
| 203 | + os: windows |
| 204 | + outerTemplateContext: |
| 205 | + outputs: |
| 206 | + - output: pipelineArtifact |
| 207 | + targetPath: $(JobOutputDirectory) |
| 208 | + artifactName: $(JobOutputArtifactName) |
| 209 | + publishArtifacts: false # Handled by 1ESPT |
| 210 | + buildConfigurations: ${{ parameters.buildConfigurations }} |
| 211 | + buildPlatforms: ${{ parameters.buildPlatforms }} |
| 212 | + generateSbom: false # this is handled by 1ESPT |
| 213 | + codeSign: ${{ parameters.codeSign }} |
| 214 | + signingIdentity: ${{ parameters.signingIdentity }} |
| 215 | + |
| 216 | + - stage: Publish |
| 217 | + displayName: Publish |
| 218 | + dependsOn: |
| 219 | + - Build |
| 220 | + - ${{ if or(parameters.buildTerminal, parameters.buildConPTY, parameters.buildWPF) }}: |
| 221 | + - Package |
| 222 | + jobs: |
| 223 | + - template: ./build/pipelines/templates-v2/job-publish-symbols-using-symbolrequestprod-api.yml@self |
| 224 | + parameters: |
| 225 | + pool: |
| 226 | + name: SHINE-INT-S |
| 227 | + os: windows |
| 228 | + includePublicSymbolServer: ${{ parameters.publishSymbolsToPublic }} |
| 229 | + symbolExpiryTime: ${{ parameters.symbolExpiryTime }} |
| 230 | + subscription: ${{ parameters.symbolPublishingSubscription }} |
| 231 | + symbolProject: ${{ parameters.symbolPublishingProject }} |
| 232 | + |
| 233 | + - ${{ parameters.extraPublishJobs }} |
0 commit comments