Skip to content

Commit 588c384

Browse files
authored
Migrate Release Pipelines to 1ES (#1438)
* Migrate Release Pipelines to 1ES This PR migrates the VS and VS Code Release Pipelines to use the 1ES template. This extends the existing Microbuild Template and converts the PublishArtifact and NugetPush to the 1ES tasks. * Address PR comments
1 parent 4017519 commit 588c384

14 files changed

+133
-64
lines changed

eng/pipelines/VS-release.yml

+35-6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,40 @@
22
name: $(Date:yyyMMdd).$(Rev:r)
33
variables:
44
- group: TSDTUSR
5-
jobs:
6-
- template: ./jobs/VSEngSS-MicroBuild2022-1ES.job.yml
7-
parameters:
8-
DisplayName: 'VS_Release'
9-
JobTemplate:
10-
- template: ../templates/VS-release.template.yml
115

6+
resources:
7+
repositories:
8+
- repository: MicroBuildTemplate
9+
type: git
10+
name: 1ESPipelineTemplates/MicroBuildTemplate
11+
ref: refs/tags/release
12+
13+
extends:
14+
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
15+
parameters:
16+
pool:
17+
name: VSEngSS-MicroBuild2022-1ES
18+
os: windows
19+
sdl:
20+
sourceAnalysisPool:
21+
name: VSEngSS-MicroBuild2022-1ES
22+
os: windows
23+
stages:
24+
- stage: stage
25+
displayName: VS_Release
26+
jobs:
27+
- job: Phase_1
28+
displayName: VS_Release
29+
timeoutInMinutes: 180
30+
cancelTimeoutInMinutes: 1
31+
templateContext:
32+
mb:
33+
signing:
34+
enabled: true
35+
signType: real
36+
zipSources: false
37+
localization:
38+
enabled: true
39+
steps:
40+
- template: /eng/pipelines/templates/VS-release.template.yml@self
1241
...

eng/pipelines/VSCode-release.yml

+51-25
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,57 @@
22
name: $(Date:yyyMMdd).$(Rev:r)
33
variables:
44
- group: TSDTUSR
5-
stages:
6-
- stage: Windows
7-
dependsOn: []
8-
jobs:
9-
- template: ./jobs/VSEngSS-MicroBuild2022-1ES.job.yml
10-
parameters:
11-
DisplayName: 'VSCode_Release'
12-
JobTemplate:
13-
- template: ../templates/VSCode-release.template.yml
145

15-
- stage: OSX_CodeSign
16-
dependsOn: [Windows]
17-
jobs:
18-
- template: ./jobs/MSHosted-OSX.job.yml
19-
parameters:
20-
DisplayName: 'OSX Sign/Harden'
21-
JobTemplate:
22-
- template: ../templates/VSCode-codesign-osx.template.yml
6+
resources:
7+
repositories:
8+
- repository: MicroBuildTemplate
9+
type: git
10+
name: 1ESPipelineTemplates/MicroBuildTemplate
11+
ref: refs/tags/release
2312

24-
- stage: OSX_ESRPSign
25-
dependsOn: [OSX_CodeSign]
26-
jobs:
27-
- template: ./jobs/VSEngSS-MicroBuild2022-1ES.job.yml
28-
parameters:
29-
DisplayName: 'OSX Sign/Harden'
30-
JobTemplate:
31-
- template: ../templates/VSCode-esrp-sign-osx.template.yml
13+
extends:
14+
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
15+
parameters:
16+
pool:
17+
name: VSEngSS-MicroBuild2022-1ES
18+
os: windows
19+
sdl:
20+
sourceAnalysisPool:
21+
name: VSEngSS-MicroBuild2022-1ES
22+
os: windows
23+
stages:
24+
- stage: Windows
25+
jobs:
26+
- job:
27+
displayName: Windows
28+
timeoutInMinutes: 180
29+
cancelTimeoutInMinutes: 1
30+
templateContext:
31+
mb:
32+
signing:
33+
enabled: true
34+
signType: real
35+
zipSources: false
36+
localization:
37+
enabled: true
38+
steps:
39+
- template: /eng/pipelines/templates/VSCode-release.template.yml@self
40+
41+
- stage: OSX_CodeSign
42+
dependsOn: [Windows]
43+
jobs:
44+
- template: /eng/pipelines/jobs/MSHosted-OSX.job.yml@self
45+
parameters:
46+
DisplayName: 'OSX Sign/Harden'
47+
JobTemplate:
48+
- template: ../templates/VSCode-codesign-osx.template.yml
49+
50+
- stage: OSX_ESRPSign
51+
dependsOn: [OSX_CodeSign]
52+
jobs:
53+
- template: /eng/pipelines/jobs/VSEngSS-MicroBuild2022-1ES.job.yml@self
54+
parameters:
55+
DisplayName: 'OSX Sign/Harden'
56+
JobTemplate:
57+
- template: ../templates/VSCode-esrp-sign-osx.template.yml
3258
...

eng/pipelines/jobs/MSHosted-OSX.job.yml

+2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ jobs:
99
- job:
1010
displayName: ${{ parameters.DisplayName }}
1111
pool:
12+
name: Azure Pipelines
1213
vmImage: 'macOS-latest'
14+
os: macOS
1315
steps:
1416
- ${{ parameters.JobTemplate }}
1517
...

eng/pipelines/steps/BuildSolution.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@ steps:
3131
"SIGN_TYPE": "$(SignType)"
3232
}
3333

34-
- template: ../tasks/PublishPipelineArtifact.yml
34+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
3535
parameters:
36+
displayName: 'Publish binlogs'
37+
targetPath: '$(Build.BinariesDirectory)/build_logs/'
3638
artifactName: '${{ parameters.Configuration }}_binlog'
37-
path: '$(Build.BinariesDirectory)/build_logs/'
3839
condition: ne(variables['System.Debug'], '')
3940

40-
- template: ../tasks/PublishPipelineArtifact.yml
41+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
4142
parameters:
43+
displayName: 'Publish debug binaries'
44+
targetPath: '$(Build.SourcesDirectory)\bin\${{ parameters.Configuration }}'
4245
artifactName: '${{ parameters.Configuration }}_debug_bin'
43-
path: '$(Build.SourcesDirectory)\bin\${{ parameters.Configuration }}'
4446
condition: ne(variables['System.Debug'], '')
4547
...

eng/pipelines/steps/CollectAndPublishBinaries.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ steps:
1313
CleanTargetFolder: true
1414
OverWrite: true
1515

16-
- template: ../tasks/PublishPipelineArtifact.yml
16+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
1717
parameters:
1818
displayName: 'Publish Binaries'
19-
path: ${{ parameters.TargetFolder }}
19+
targetPath: ${{ parameters.TargetFolder }}
2020
artifactName: '${{ parameters.ArtifactName }}'
2121
...

eng/pipelines/steps/CopyAndPublishSymbols.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ steps:
2727
SearchPattern: '**\*.pdb'
2828
SymbolServerType: TeamServices
2929

30-
- template: ../tasks/PublishPipelineArtifact.yml
30+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
3131
parameters:
3232
displayName: 'Publish Symbols'
33-
path: '$(Build.ArtifactStagingDirectory)/symbols'
33+
targetPath: '$(Build.ArtifactStagingDirectory)/symbols'
3434
artifactName: 'Symbols'
3535
...

eng/pipelines/steps/PackAndPublishVSPackages.yml

+10-9
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ steps:
1212
echo ##vso[task.setvariable variable=NugetPackageVersion;]%NugetPackageVersion%
1313
displayName: 'Get NuGet Version'
1414

15-
- template: ../tasks/PublishPipelineArtifact.yml
15+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
1616
parameters:
1717
displayName: 'Publish File Version'
18-
path: '$(Build.SourcesDirectory)\obj\Lab.Release\NugetPackageVersion.txt'
18+
targetPath: '$(Build.SourcesDirectory)\obj\Lab.Release\NugetPackageVersion.txt'
1919
artifactName: 'PackageVersion'
2020

2121
- template: ../tasks/NuGetCommand.yml
@@ -27,11 +27,12 @@ steps:
2727
buildProperties: 'version=$(NugetPackageVersion)'
2828
basePath: ${{ parameters.BasePath }}
2929

30-
- template: ../tasks/NuGetCommand.yml
31-
parameters:
32-
displayName: 'NuGet push'
33-
command: push
34-
searchPatternPush: '$(Build.SourcesDirectory)\VS.Redist.Debugger.MDD.MIEngine.*.nupkg;$(Build.SourcesDirectory)\VS.Redist.Debugger.MDD.UnixPortSupplier.*.nupkg'
35-
feedPublish: '97a41293-2972-4f48-8c0e-05493ae82010' # VS
36-
condition: and(succeeded(), eq(variables['SignType'], 'real'))
30+
- task: 1ES.PublishNuget@1
31+
displayName: Publish Nuget package
32+
condition: and(succeeded(), eq(variables['SignType'], 'real'))
33+
inputs:
34+
packagesToPush: '$(Build.SourcesDirectory)\VS.Redist.Debugger.MDD.MIEngine.*.nupkg;$(Build.SourcesDirectory)\VS.Redist.Debugger.MDD.UnixPortSupplier.*.nupkg'
35+
packageParentPath: '$(Build.SourcesDirectory)'
36+
publishVstsFeed: '97a41293-2972-4f48-8c0e-05493ae82010' # VS
37+
nuGetFeedType: internal
3738
...

eng/pipelines/steps/PublishOpenDebugAD7.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,20 @@ steps:
3939
copy ${{ parameters.SignedBinariesFolder }}\Release\osxlaunchhelper.scpt $(Build.StagingDirectory)\${{ parameters.RuntimeID }}\debugAdapters\bin\.
4040
displayName: "Copy osxlaunchhelper.scpt"
4141

42-
- template: ../tasks/PublishPipelineArtifact.yml
42+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
4343
parameters:
4444
displayName: 'Publish Unsigned ${{ parameters.RuntimeID }}'
45-
path: '$(Build.StagingDirectory)\${{ parameters.RuntimeID }}'
46-
artifactName: 'unsigned_${{ parameters.RuntimeID }}_binaries'
45+
targetPath: '$(Build.StagingDirectory)\${{ parameters.RuntimeID }}'
46+
artifactName: 'unsigned_${{ parameters.RuntimeID }}_binaries'
4747

4848
# Publishing for non-macOS
4949
- ${{ if not(startsWith(parameters.RuntimeID, 'osx-')) }}:
5050
- powershell: |
5151
Compress-Archive -Path $(Build.StagingDirectory)\${{ parameters.RuntimeID }}\debugAdapters -DestinationPath $(Build.StagingDirectory)\zips\${{ parameters.RuntimeID }}.zip
5252
displayName: "Create ${{ parameters.RuntimeID}}.zip"
5353
54-
- template: ../tasks/PublishPipelineArtifact.yml
54+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
5555
parameters:
5656
displayName: 'Publish ${{ parameters.RuntimeID }}'
57-
path: '$(Build.StagingDirectory)\zips\${{ parameters.RuntimeID }}.zip'
57+
targetPath: '$(Build.StagingDirectory)\zips\${{ parameters.RuntimeID }}.zip'
5858
artifactName: '${{ parameters.RuntimeID }}_zip'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
parameters:
3+
displayName: 'Publish Pipeline Artifact'
4+
targetPath: '$(Build.ArtifactStagingDirectory)'
5+
artifactName: 'drop'
6+
condition: 'succeeded()'
7+
8+
steps:
9+
- task: 1ES.PublishPipelineArtifact@1
10+
displayName: ${{ parameters.displayName }}
11+
inputs:
12+
targetPath: ${{ parameters.targetPath }}
13+
artifactName: '${{ parameters.artifactName }}'
14+
condition: ${{ parameters.condition }}
15+
...
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
22
steps:
3-
- task: ms-vseng.MicroBuildTasks.a0262b21-fb8f-46f8-bb9a-60ed560d4a87.MicroBuildLocalizationPlugin@3
3+
- task: ms-vseng.MicroBuildTasks.a0262b21-fb8f-46f8-bb9a-60ed560d4a87.MicroBuildLocalizationPlugin@4
44
displayName: 'Install Localization Plugin'
55
...

eng/pipelines/templates/VS-release.template.yml

-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ steps:
66

77
- template: ../tasks/NuGetToolInstaller.yml
88

9-
- template: ../tasks/MicroBuildSigningPlugin.yml
10-
11-
- template: ../tasks/MicroBuildLocalizationPlugin.yml
12-
139
- template: ../steps/BuildSolution.yml
1410
parameters:
1511
Configuration: 'Lab.Release'

eng/pipelines/templates/VSCode-codesign-osx.template.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ steps:
2222
echo "#[command] zip -r $(Pipeline.Workspace)/${{ rid }}.zip ./debugAdapters"
2323
zip -r $(Pipeline.Workspace)/${{ rid }}.zip ./debugAdapters
2424
25-
- template: ../tasks/PublishPipelineArtifact.yml
25+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
2626
parameters:
2727
displayName: 'Publish Binaries'
28-
path: '$(Pipeline.Workspace)/${{ rid }}.zip'
28+
targetPath: '$(Pipeline.Workspace)/${{ rid }}.zip'
2929
artifactName: 'unsigned_${{ rid }}_zip'
3030
...

eng/pipelines/templates/VSCode-esrp-sign-osx.template.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ steps:
1818
SigningTarget: '$(Pipeline.Workspace)\Artifacts\${{ rid }}.zip'
1919
SigningCert: 8023
2020

21-
- template: ../tasks/PublishPipelineArtifact.yml
21+
- template: ../tasks/1ES/PublishPipelineArtifact.yml
2222
parameters:
2323
displayName: 'Publish Binaries'
24-
path: '$(Pipeline.Workspace)\Artifacts\${{ rid }}.zip'
24+
targetPath: '$(Pipeline.Workspace)\Artifacts\${{ rid }}.zip'
2525
artifactName: '${{ rid }}_zip'
2626
...

eng/pipelines/templates/VSCode-release.template.yml

-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ steps:
88

99
- template: ../tasks/NuGetToolInstaller.yml
1010

11-
- template: ../tasks/MicroBuildSigningPlugin.yml
12-
1311
- template: ../tasks/UseDotNet.yml
1412

1513
- template: ../steps/BuildSolution.yml

0 commit comments

Comments
 (0)