Skip to content

Commit

Permalink
Improve release build performance using new artifacts tasks (pythonGH…
Browse files Browse the repository at this point in the history
  • Loading branch information
zooba authored Jun 17, 2019
1 parent 343ed0f commit fe2ad92
Show file tree
Hide file tree
Showing 12 changed files with 97 additions and 126 deletions.
12 changes: 6 additions & 6 deletions .azure-pipelines/windows-release/build-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,19 @@ steps:
env:
CAT: $(Build.BinariesDirectory)\bin\$(Arch)\python

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

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

- task: CopyFiles@2
displayName: 'Layout Artifact: symbols'
Expand Down
19 changes: 7 additions & 12 deletions .azure-pipelines/windows-release/layout-command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,14 @@ steps:
- powershell: >
Write-Host (
'##vso[task.setvariable variable=LayoutCmd]&
"{0}"
"{0}\bin\python.exe"
"{1}\PC\layout"
-vv
--source "{1}"
--build "{2}"
--temp "{3}"
--include-cat "{2}\python.cat"
--doc-build "{4}"'
-f (
"$(PYTHON)",
"$(Build.SourcesDirectory)",
(Split-Path -Parent "$(PYTHON)"),
"$(Build.BinariesDirectory)\layout-temp",
"$(Build.BinariesDirectory)\doc"
))
--build "{0}\bin"
--temp "{0}\layout-temp"
--include-cat "{0}\bin\python.cat"
--doc-build "{0}\doc"'
-f ("$(Build.BinariesDirectory)", "$(Build.SourcesDirectory)")
)
displayName: 'Set LayoutCmd'
56 changes: 17 additions & 39 deletions .azure-pipelines/windows-release/msi-steps.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
steps:
- template: ./checkout.yml

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: doc'
inputs:
artifactName: doc
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\doc

- task: CopyFiles@2
displayName: 'Merge documentation files'
Expand All @@ -15,63 +15,41 @@ steps:
contents: |
htmlhelp\*.chm
- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_win32'
inputs:
artifactName: bin_win32
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\win32

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_win32_d'
inputs:
artifactName: bin_win32_d
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\win32

- task: CopyFiles@2
displayName: 'Merge win32 debug files'
inputs:
sourceFolder: $(Build.BinariesDirectory)\bin_win32_d
targetFolder: $(Build.BinariesDirectory)\bin_win32
contents: |
**\*_d.*
- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_amd64'
inputs:
artifactName: bin_amd64
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\amd64

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_amd64_d'
inputs:
artifactName: bin_amd64_d
downloadPath: $(Build.BinariesDirectory)

- task: CopyFiles@2
displayName: 'Merge amd64 debug files'
inputs:
sourceFolder: $(Build.BinariesDirectory)\bin_amd64_d
targetFolder: $(Build.BinariesDirectory)\bin_amd64
contents: |
**\*_d.*
targetPath: $(Build.BinariesDirectory)\amd64

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_win32'
inputs:
artifactName: tcltk_lib_win32
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\tcltk_lib_win32

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_amd64'
inputs:
artifactName: tcltk_lib_amd64
downloadPath: $(Build.BinariesDirectory)

- script: |
ren bin_win32 win32
ren bin_amd64 amd64
displayName: 'Correct artifact directory names'
workingDirectory: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64

- script: |
call Tools\msi\get_externals.bat
Expand Down Expand Up @@ -139,8 +117,8 @@ steps:
*.cab
*.exe
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish MSI'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\msi'
ArtifactName: msi
targetPath: '$(Build.ArtifactStagingDirectory)\msi'
artifactName: msi
18 changes: 9 additions & 9 deletions .azure-pipelines/windows-release/stage-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ jobs:
html\**\*
htmlhelp\*.chm
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: doc'
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)\Doc
ArtifactName: doc
targetPath: $(Build.ArtifactStagingDirectory)\Doc
artifactName: doc

- job: Build_Python
displayName: Python build
Expand Down Expand Up @@ -147,14 +147,14 @@ jobs:
platform: x64
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_amd64"

- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_win32'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\tcl_win32'
ArtifactName: tcltk_lib_win32
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_win32'
artifactName: tcltk_lib_win32

- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_amd64'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
ArtifactName: tcltk_lib_amd64
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
artifactName: tcltk_lib_amd64
14 changes: 7 additions & 7 deletions .azure-pipelines/windows-release/stage-layout-embed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,21 @@ jobs:
matrix:
win32:
Name: win32
Python: $(Build.BinariesDirectory)\bin_$(Name)\python.exe
Python: $(Build.BinariesDirectory)\bin\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
amd64:
Name: amd64
Python: $(Build.BinariesDirectory)\bin_$(Name)\python.exe
Python: $(Build.BinariesDirectory)\bin\python.exe
PYTHONHOME: $(Build.SourcesDirectory)

steps:
- template: ./checkout.yml

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\bin

- template: ./layout-command.yml

Expand All @@ -43,11 +43,11 @@ jobs:
--preset-embed
displayName: 'Generate embeddable layout'
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_embed_$(Name)'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\layout'
ArtifactName: layout_embed_$(Name)
targetPath: '$(Build.ArtifactStagingDirectory)\layout'
artifactName: layout_embed_$(Name)

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: embed'
Expand Down
24 changes: 12 additions & 12 deletions .azure-pipelines/windows-release/stage-layout-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,40 +23,40 @@ jobs:
steps:
- template: ./checkout.yml

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\bin

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)_d'
inputs:
artifactName: bin_$(Name)_d
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\bin

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: doc'
inputs:
artifactName: doc
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\doc

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_$(Name)'
inputs:
artifactName: tcltk_lib_$(Name)
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\tcltk_lib

- template: ./layout-command.yml

- powershell: |
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\layout" --preset-default
displayName: 'Generate full layout'
env:
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_full_$(Name)'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\layout'
ArtifactName: layout_full_$(Name)
targetPath: '$(Build.ArtifactStagingDirectory)\layout'
artifactName: layout_full_$(Name)
34 changes: 16 additions & 18 deletions .azure-pipelines/windows-release/stage-layout-msix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,23 @@ jobs:
steps:
- template: ./checkout.yml

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\bin

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)_d'
inputs:
artifactName: bin_$(Name)_d
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\bin

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_$(Name)'
inputs:
artifactName: tcltk_lib_$(Name)
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\tcltk_lib

- template: ./layout-command.yml

Expand All @@ -47,20 +47,20 @@ jobs:
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx-store" --preset-appx --precompile
displayName: 'Generate store APPX layout'
env:
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_appxstore_$(Name)'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\appx-store'
ArtifactName: layout_appxstore_$(Name)
targetPath: '$(Build.ArtifactStagingDirectory)\appx-store'
artifactName: layout_appxstore_$(Name)

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

- powershell: |
$info = (gc "$(Build.BinariesDirectory)\cert\certinfo.json" | ConvertFrom-JSON)
Expand All @@ -75,12 +75,10 @@ jobs:
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx" --preset-appx --precompile --include-symbols --include-tests
displayName: 'Generate sideloading APPX layout'
env:
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
APPX_DATA_PUBLISHER: $(APPX_DATA_PUBLISHER)
APPX_DATA_SHA256: $(APPX_DATA_SHA256)
TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_appx_$(Name)'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\appx'
ArtifactName: layout_appx_$(Name)
targetPath: '$(Build.ArtifactStagingDirectory)\appx'
artifactName: layout_appx_$(Name)
10 changes: 5 additions & 5 deletions .azure-pipelines/windows-release/stage-layout-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ jobs:
steps:
- template: ./checkout.yml

- task: DownloadBuildArtifacts@0
- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
downloadPath: $(Build.BinariesDirectory)
targetPath: $(Build.BinariesDirectory)\bin

- template: ./layout-command.yml

Expand All @@ -37,8 +37,8 @@ jobs:
env:
TCL_LIBRARY: $(Build.BinariesDirectory)\bin_$(Name)\tcl\tcl8
- task: PublishBuildArtifacts@1
- task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_nuget_$(Name)'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\nuget'
ArtifactName: layout_nuget_$(Name)
targetPath: '$(Build.ArtifactStagingDirectory)\nuget'
artifactName: layout_nuget_$(Name)
Loading

0 comments on commit fe2ad92

Please sign in to comment.