Skip to content

Commit fe2ad92

Browse files
authored
Improve release build performance using new artifacts tasks (pythonGH-14175)
1 parent 343ed0f commit fe2ad92

File tree

12 files changed

+97
-126
lines changed

12 files changed

+97
-126
lines changed

.azure-pipelines/windows-release/build-steps.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,19 @@ steps:
5353
env:
5454
CAT: $(Build.BinariesDirectory)\bin\$(Arch)\python
5555

56-
- task: PublishBuildArtifacts@1
56+
- task: PublishPipelineArtifact@0
5757
displayName: 'Publish binaries'
5858
condition: and(succeeded(), not(and(eq(variables['Configuration'], 'Release'), variables['SigningCertificate'])))
5959
inputs:
60-
PathtoPublish: '$(Build.BinariesDirectory)\bin\$(Arch)'
61-
ArtifactName: bin_$(Name)
60+
targetPath: '$(Build.BinariesDirectory)\bin\$(Arch)'
61+
artifactName: bin_$(Name)
6262

63-
- task: PublishBuildArtifacts@1
63+
- task: PublishPipelineArtifact@0
6464
displayName: 'Publish binaries for signing'
6565
condition: and(succeeded(), and(eq(variables['Configuration'], 'Release'), variables['SigningCertificate']))
6666
inputs:
67-
PathtoPublish: '$(Build.BinariesDirectory)\bin\$(Arch)'
68-
ArtifactName: unsigned_bin_$(Name)
67+
targetPath: '$(Build.BinariesDirectory)\bin\$(Arch)'
68+
artifactName: unsigned_bin_$(Name)
6969

7070
- task: CopyFiles@2
7171
displayName: 'Layout Artifact: symbols'

.azure-pipelines/windows-release/layout-command.yml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@ steps:
22
- powershell: >
33
Write-Host (
44
'##vso[task.setvariable variable=LayoutCmd]&
5-
"{0}"
5+
"{0}\bin\python.exe"
66
"{1}\PC\layout"
77
-vv
88
--source "{1}"
9-
--build "{2}"
10-
--temp "{3}"
11-
--include-cat "{2}\python.cat"
12-
--doc-build "{4}"'
13-
-f (
14-
"$(PYTHON)",
15-
"$(Build.SourcesDirectory)",
16-
(Split-Path -Parent "$(PYTHON)"),
17-
"$(Build.BinariesDirectory)\layout-temp",
18-
"$(Build.BinariesDirectory)\doc"
19-
))
9+
--build "{0}\bin"
10+
--temp "{0}\layout-temp"
11+
--include-cat "{0}\bin\python.cat"
12+
--doc-build "{0}\doc"'
13+
-f ("$(Build.BinariesDirectory)", "$(Build.SourcesDirectory)")
14+
)
2015
displayName: 'Set LayoutCmd'

.azure-pipelines/windows-release/msi-steps.yml

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
steps:
22
- template: ./checkout.yml
33

4-
- task: DownloadBuildArtifacts@0
4+
- task: DownloadPipelineArtifact@1
55
displayName: 'Download artifact: doc'
66
inputs:
77
artifactName: doc
8-
downloadPath: $(Build.BinariesDirectory)
8+
targetPath: $(Build.BinariesDirectory)\doc
99

1010
- task: CopyFiles@2
1111
displayName: 'Merge documentation files'
@@ -15,63 +15,41 @@ steps:
1515
contents: |
1616
htmlhelp\*.chm
1717
18-
- task: DownloadBuildArtifacts@0
18+
- task: DownloadPipelineArtifact@1
1919
displayName: 'Download artifact: bin_win32'
2020
inputs:
2121
artifactName: bin_win32
22-
downloadPath: $(Build.BinariesDirectory)
22+
targetPath: $(Build.BinariesDirectory)\win32
2323

24-
- task: DownloadBuildArtifacts@0
24+
- task: DownloadPipelineArtifact@1
2525
displayName: 'Download artifact: bin_win32_d'
2626
inputs:
2727
artifactName: bin_win32_d
28-
downloadPath: $(Build.BinariesDirectory)
28+
targetPath: $(Build.BinariesDirectory)\win32
2929

30-
- task: CopyFiles@2
31-
displayName: 'Merge win32 debug files'
32-
inputs:
33-
sourceFolder: $(Build.BinariesDirectory)\bin_win32_d
34-
targetFolder: $(Build.BinariesDirectory)\bin_win32
35-
contents: |
36-
**\*_d.*
37-
38-
- task: DownloadBuildArtifacts@0
30+
- task: DownloadPipelineArtifact@1
3931
displayName: 'Download artifact: bin_amd64'
4032
inputs:
4133
artifactName: bin_amd64
42-
downloadPath: $(Build.BinariesDirectory)
34+
targetPath: $(Build.BinariesDirectory)\amd64
4335

44-
- task: DownloadBuildArtifacts@0
36+
- task: DownloadPipelineArtifact@1
4537
displayName: 'Download artifact: bin_amd64_d'
4638
inputs:
4739
artifactName: bin_amd64_d
48-
downloadPath: $(Build.BinariesDirectory)
49-
50-
- task: CopyFiles@2
51-
displayName: 'Merge amd64 debug files'
52-
inputs:
53-
sourceFolder: $(Build.BinariesDirectory)\bin_amd64_d
54-
targetFolder: $(Build.BinariesDirectory)\bin_amd64
55-
contents: |
56-
**\*_d.*
40+
targetPath: $(Build.BinariesDirectory)\amd64
5741

58-
- task: DownloadBuildArtifacts@0
42+
- task: DownloadPipelineArtifact@1
5943
displayName: 'Download artifact: tcltk_lib_win32'
6044
inputs:
6145
artifactName: tcltk_lib_win32
62-
downloadPath: $(Build.BinariesDirectory)
46+
targetPath: $(Build.BinariesDirectory)\tcltk_lib_win32
6347

64-
- task: DownloadBuildArtifacts@0
48+
- task: DownloadPipelineArtifact@1
6549
displayName: 'Download artifact: tcltk_lib_amd64'
6650
inputs:
6751
artifactName: tcltk_lib_amd64
68-
downloadPath: $(Build.BinariesDirectory)
69-
70-
- script: |
71-
ren bin_win32 win32
72-
ren bin_amd64 amd64
73-
displayName: 'Correct artifact directory names'
74-
workingDirectory: $(Build.BinariesDirectory)
52+
targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64
7553

7654
- script: |
7755
call Tools\msi\get_externals.bat
@@ -139,8 +117,8 @@ steps:
139117
*.cab
140118
*.exe
141119
142-
- task: PublishBuildArtifacts@1
120+
- task: PublishPipelineArtifact@0
143121
displayName: 'Publish MSI'
144122
inputs:
145-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\msi'
146-
ArtifactName: msi
123+
targetPath: '$(Build.ArtifactStagingDirectory)\msi'
124+
artifactName: msi

.azure-pipelines/windows-release/stage-build.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ jobs:
3333
html\**\*
3434
htmlhelp\*.chm
3535
36-
- task: PublishBuildArtifacts@1
36+
- task: PublishPipelineArtifact@0
3737
displayName: 'Publish artifact: doc'
3838
inputs:
39-
PathtoPublish: $(Build.ArtifactStagingDirectory)\Doc
40-
ArtifactName: doc
39+
targetPath: $(Build.ArtifactStagingDirectory)\Doc
40+
artifactName: doc
4141

4242
- job: Build_Python
4343
displayName: Python build
@@ -147,14 +147,14 @@ jobs:
147147
platform: x64
148148
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_amd64"
149149

150-
- task: PublishBuildArtifacts@1
150+
- task: PublishPipelineArtifact@0
151151
displayName: 'Publish artifact: tcltk_lib_win32'
152152
inputs:
153-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\tcl_win32'
154-
ArtifactName: tcltk_lib_win32
153+
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_win32'
154+
artifactName: tcltk_lib_win32
155155

156-
- task: PublishBuildArtifacts@1
156+
- task: PublishPipelineArtifact@0
157157
displayName: 'Publish artifact: tcltk_lib_amd64'
158158
inputs:
159-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
160-
ArtifactName: tcltk_lib_amd64
159+
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
160+
artifactName: tcltk_lib_amd64

.azure-pipelines/windows-release/stage-layout-embed.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ jobs:
1313
matrix:
1414
win32:
1515
Name: win32
16-
Python: $(Build.BinariesDirectory)\bin_$(Name)\python.exe
16+
Python: $(Build.BinariesDirectory)\bin\python.exe
1717
PYTHONHOME: $(Build.SourcesDirectory)
1818
amd64:
1919
Name: amd64
20-
Python: $(Build.BinariesDirectory)\bin_$(Name)\python.exe
20+
Python: $(Build.BinariesDirectory)\bin\python.exe
2121
PYTHONHOME: $(Build.SourcesDirectory)
2222

2323
steps:
2424
- template: ./checkout.yml
2525

26-
- task: DownloadBuildArtifacts@0
26+
- task: DownloadPipelineArtifact@1
2727
displayName: 'Download artifact: bin_$(Name)'
2828
inputs:
2929
artifactName: bin_$(Name)
30-
downloadPath: $(Build.BinariesDirectory)
30+
targetPath: $(Build.BinariesDirectory)\bin
3131

3232
- template: ./layout-command.yml
3333

@@ -43,11 +43,11 @@ jobs:
4343
--preset-embed
4444
displayName: 'Generate embeddable layout'
4545
46-
- task: PublishBuildArtifacts@1
46+
- task: PublishPipelineArtifact@0
4747
displayName: 'Publish Artifact: layout_embed_$(Name)'
4848
inputs:
49-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\layout'
50-
ArtifactName: layout_embed_$(Name)
49+
targetPath: '$(Build.ArtifactStagingDirectory)\layout'
50+
artifactName: layout_embed_$(Name)
5151

5252
- task: PublishBuildArtifacts@1
5353
displayName: 'Publish Artifact: embed'

.azure-pipelines/windows-release/stage-layout-full.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,40 +23,40 @@ jobs:
2323
steps:
2424
- template: ./checkout.yml
2525

26-
- task: DownloadBuildArtifacts@0
26+
- task: DownloadPipelineArtifact@1
2727
displayName: 'Download artifact: bin_$(Name)'
2828
inputs:
2929
artifactName: bin_$(Name)
30-
downloadPath: $(Build.BinariesDirectory)
30+
targetPath: $(Build.BinariesDirectory)\bin
3131

32-
- task: DownloadBuildArtifacts@0
32+
- task: DownloadPipelineArtifact@1
3333
displayName: 'Download artifact: bin_$(Name)_d'
3434
inputs:
3535
artifactName: bin_$(Name)_d
36-
downloadPath: $(Build.BinariesDirectory)
36+
targetPath: $(Build.BinariesDirectory)\bin
3737

38-
- task: DownloadBuildArtifacts@0
38+
- task: DownloadPipelineArtifact@1
3939
displayName: 'Download artifact: doc'
4040
inputs:
4141
artifactName: doc
42-
downloadPath: $(Build.BinariesDirectory)
42+
targetPath: $(Build.BinariesDirectory)\doc
4343

44-
- task: DownloadBuildArtifacts@0
44+
- task: DownloadPipelineArtifact@1
4545
displayName: 'Download artifact: tcltk_lib_$(Name)'
4646
inputs:
4747
artifactName: tcltk_lib_$(Name)
48-
downloadPath: $(Build.BinariesDirectory)
48+
targetPath: $(Build.BinariesDirectory)\tcltk_lib
4949

5050
- template: ./layout-command.yml
5151

5252
- powershell: |
5353
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\layout" --preset-default
5454
displayName: 'Generate full layout'
5555
env:
56-
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
56+
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
5757
58-
- task: PublishBuildArtifacts@1
58+
- task: PublishPipelineArtifact@0
5959
displayName: 'Publish Artifact: layout_full_$(Name)'
6060
inputs:
61-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\layout'
62-
ArtifactName: layout_full_$(Name)
61+
targetPath: '$(Build.ArtifactStagingDirectory)\layout'
62+
artifactName: layout_full_$(Name)

.azure-pipelines/windows-release/stage-layout-msix.yml

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,23 @@ jobs:
2222
steps:
2323
- template: ./checkout.yml
2424

25-
- task: DownloadBuildArtifacts@0
25+
- task: DownloadPipelineArtifact@1
2626
displayName: 'Download artifact: bin_$(Name)'
2727
inputs:
2828
artifactName: bin_$(Name)
29-
downloadPath: $(Build.BinariesDirectory)
29+
targetPath: $(Build.BinariesDirectory)\bin
3030

31-
- task: DownloadBuildArtifacts@0
31+
- task: DownloadPipelineArtifact@1
3232
displayName: 'Download artifact: bin_$(Name)_d'
3333
inputs:
3434
artifactName: bin_$(Name)_d
35-
downloadPath: $(Build.BinariesDirectory)
35+
targetPath: $(Build.BinariesDirectory)\bin
3636

37-
- task: DownloadBuildArtifacts@0
37+
- task: DownloadPipelineArtifact@1
3838
displayName: 'Download artifact: tcltk_lib_$(Name)'
3939
inputs:
4040
artifactName: tcltk_lib_$(Name)
41-
downloadPath: $(Build.BinariesDirectory)
41+
targetPath: $(Build.BinariesDirectory)\tcltk_lib
4242

4343
- template: ./layout-command.yml
4444

@@ -47,20 +47,20 @@ jobs:
4747
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx-store" --preset-appx --precompile
4848
displayName: 'Generate store APPX layout'
4949
env:
50-
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
50+
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
5151
52-
- task: PublishBuildArtifacts@1
52+
- task: PublishPipelineArtifact@0
5353
displayName: 'Publish Artifact: layout_appxstore_$(Name)'
5454
inputs:
55-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\appx-store'
56-
ArtifactName: layout_appxstore_$(Name)
55+
targetPath: '$(Build.ArtifactStagingDirectory)\appx-store'
56+
artifactName: layout_appxstore_$(Name)
5757

58-
- task: DownloadBuildArtifacts@0
58+
- task: DownloadPipelineArtifact@1
5959
displayName: 'Download artifact: cert'
6060
condition: and(succeeded(), variables['SigningCertificate'])
6161
inputs:
6262
artifactName: cert
63-
downloadPath: $(Build.BinariesDirectory)
63+
targetPath: $(Build.BinariesDirectory)\cert
6464

6565
- powershell: |
6666
$info = (gc "$(Build.BinariesDirectory)\cert\certinfo.json" | ConvertFrom-JSON)
@@ -75,12 +75,10 @@ jobs:
7575
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx" --preset-appx --precompile --include-symbols --include-tests
7676
displayName: 'Generate sideloading APPX layout'
7777
env:
78-
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
79-
APPX_DATA_PUBLISHER: $(APPX_DATA_PUBLISHER)
80-
APPX_DATA_SHA256: $(APPX_DATA_SHA256)
78+
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
8179
82-
- task: PublishBuildArtifacts@1
80+
- task: PublishPipelineArtifact@0
8381
displayName: 'Publish Artifact: layout_appx_$(Name)'
8482
inputs:
85-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\appx'
86-
ArtifactName: layout_appx_$(Name)
83+
targetPath: '$(Build.ArtifactStagingDirectory)\appx'
84+
artifactName: layout_appx_$(Name)

.azure-pipelines/windows-release/stage-layout-nuget.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ jobs:
2323
steps:
2424
- template: ./checkout.yml
2525

26-
- task: DownloadBuildArtifacts@0
26+
- task: DownloadPipelineArtifact@1
2727
displayName: 'Download artifact: bin_$(Name)'
2828
inputs:
2929
artifactName: bin_$(Name)
30-
downloadPath: $(Build.BinariesDirectory)
30+
targetPath: $(Build.BinariesDirectory)\bin
3131

3232
- template: ./layout-command.yml
3333

@@ -37,8 +37,8 @@ jobs:
3737
env:
3838
TCL_LIBRARY: $(Build.BinariesDirectory)\bin_$(Name)\tcl\tcl8
3939
40-
- task: PublishBuildArtifacts@1
40+
- task: PublishPipelineArtifact@0
4141
displayName: 'Publish Artifact: layout_nuget_$(Name)'
4242
inputs:
43-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\nuget'
44-
ArtifactName: layout_nuget_$(Name)
43+
targetPath: '$(Build.ArtifactStagingDirectory)\nuget'
44+
artifactName: layout_nuget_$(Name)

0 commit comments

Comments
 (0)