[Python-checkins] In Windows release builds, do not attempt to copy Tcl/Tk for ARM64 when it is not being published (GH-31918)
zooba
webhook-mailer at python.org
Tue Mar 15 20:44:26 EDT 2022
https://github.com/python/cpython/commit/cb495a1e9f3acfcd8cb94a6b89c79d0909e3383f
commit: cb495a1e9f3acfcd8cb94a6b89c79d0909e3383f
branch: main
author: Steve Dower <steve.dower at python.org>
committer: zooba <steve.dower at microsoft.com>
date: 2022-03-16T00:44:17Z
summary:
In Windows release builds, do not attempt to copy Tcl/Tk for ARM64 when it is not being published (GH-31918)
files:
M .azure-pipelines/windows-release.yml
M .azure-pipelines/windows-release/msi-steps.yml
M .azure-pipelines/windows-release/stage-build.yml
M .azure-pipelines/windows-release/stage-layout-full.yml
M .azure-pipelines/windows-release/stage-layout-msix.yml
M .azure-pipelines/windows-release/stage-msi.yml
diff --git a/.azure-pipelines/windows-release.yml b/.azure-pipelines/windows-release.yml
index c038ccdb8675a..ae2d1b9da1321 100644
--- a/.azure-pipelines/windows-release.yml
+++ b/.azure-pipelines/windows-release.yml
@@ -38,6 +38,14 @@ parameters:
displayName: "Publish ARM64 build"
type: boolean
default: true
+# Because there is no ARM64 Tcl/Tk pre-3.11, we need a separate option
+# to keep those builds working when the files are going to be absent.
+# Eventually when we stop releasing anything that old, we can drop this
+# argument (and make it implicitly always 'true')
+- name: ARM64TclTk
+ displayName: "Use Tcl/Tk for ARM64"
+ type: boolean
+ default: true
- name: DoPGO
displayName: "Run PGO"
type: boolean
@@ -98,6 +106,8 @@ stages:
displayName: Build binaries
jobs:
- template: windows-release/stage-build.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
- stage: Sign
displayName: Sign binaries
@@ -110,6 +120,8 @@ stages:
dependsOn: Sign
jobs:
- template: windows-release/stage-layout-full.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
- template: windows-release/stage-layout-embed.yml
- template: windows-release/stage-layout-nuget.yml
@@ -130,6 +142,8 @@ stages:
condition: and(succeeded(), eq(variables['DoMSIX'], 'true'))
jobs:
- template: windows-release/stage-layout-msix.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
- stage: Pack_MSIX
displayName: Package MSIX
@@ -143,6 +157,8 @@ stages:
condition: and(succeeded(), eq(variables['DoMSI'], 'true'))
jobs:
- template: windows-release/stage-msi.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
- stage: Test_MSI
displayName: Test MSI installer
diff --git a/.azure-pipelines/windows-release/msi-steps.yml b/.azure-pipelines/windows-release/msi-steps.yml
index 3c08a0660abe9..c3c2c43032c00 100644
--- a/.azure-pipelines/windows-release/msi-steps.yml
+++ b/.azure-pipelines/windows-release/msi-steps.yml
@@ -1,3 +1,6 @@
+parameters:
+ ARM64TclTk: true
+
steps:
- template: ./checkout.yml
@@ -71,12 +74,13 @@ steps:
artifactName: tcltk_lib_amd64
targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64
- - task: DownloadPipelineArtifact at 1
- displayName: 'Download artifact: tcltk_lib_arm64'
- condition: and(succeeded(), eq(variables['PublishARM64'], 'true'))
- inputs:
- artifactName: tcltk_lib_arm64
- targetPath: $(Build.BinariesDirectory)\tcltk_lib_arm64
+ - ${{ if eq(parameters.ARM64TclTk, true) }}:
+ - task: DownloadPipelineArtifact at 1
+ displayName: 'Download artifact: tcltk_lib_arm64'
+ condition: and(succeeded(), eq(variables['PublishARM64'], 'true'))
+ inputs:
+ artifactName: tcltk_lib_arm64
+ targetPath: $(Build.BinariesDirectory)\tcltk_lib_arm64
- powershell: |
copy $(Build.BinariesDirectory)\amd64\Activate.ps1 Lib\venv\scripts\common\Activate.ps1 -Force
@@ -137,8 +141,9 @@ steps:
PYTHON: $(Build.BinariesDirectory)\win32\python.exe
PythonForBuild: $(Build.BinariesDirectory)\win32\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
- TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_arm64
BuildForRelease: true
+ ${{ if eq(parameters.ARM64TclTk, true) }}:
+ TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_arm64
- task: CopyFiles at 2
displayName: 'Assemble artifact: msi (win32)'
diff --git a/.azure-pipelines/windows-release/stage-build.yml b/.azure-pipelines/windows-release/stage-build.yml
index e45034f650fb9..2745d79dd069c 100644
--- a/.azure-pipelines/windows-release/stage-build.yml
+++ b/.azure-pipelines/windows-release/stage-build.yml
@@ -1,3 +1,6 @@
+parameters:
+ ARM64TclTk: true
+
jobs:
- job: Build_Docs
displayName: Docs build
@@ -166,12 +169,13 @@ jobs:
platform: x64
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_amd64"
- - task: MSBuild at 1
- displayName: 'Copy Tcl/Tk lib for publish'
- inputs:
- solution: PCbuild\tcltk.props
- platform: ARM64
- msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_arm64"
+ - ${{ if eq(parameters.ARM64TclTk, true) }}:
+ - task: MSBuild at 1
+ displayName: 'Copy Tcl/Tk lib for publish'
+ inputs:
+ solution: PCbuild\tcltk.props
+ platform: ARM64
+ msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_arm64"
- task: PublishPipelineArtifact at 0
displayName: 'Publish artifact: tcltk_lib_win32'
@@ -185,8 +189,9 @@ jobs:
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
artifactName: tcltk_lib_amd64
- - task: PublishPipelineArtifact at 0
- displayName: 'Publish artifact: tcltk_lib_arm64'
- inputs:
- targetPath: '$(Build.ArtifactStagingDirectory)\tcl_arm64'
- artifactName: tcltk_lib_arm64
+ - ${{ if eq(parameters.ARM64TclTk, true) }}:
+ - task: PublishPipelineArtifact at 0
+ displayName: 'Publish artifact: tcltk_lib_arm64'
+ inputs:
+ targetPath: '$(Build.ArtifactStagingDirectory)\tcl_arm64'
+ artifactName: tcltk_lib_arm64
diff --git a/.azure-pipelines/windows-release/stage-layout-full.yml b/.azure-pipelines/windows-release/stage-layout-full.yml
index 3546df60e4e03..343ee1f73c215 100644
--- a/.azure-pipelines/windows-release/stage-layout-full.yml
+++ b/.azure-pipelines/windows-release/stage-layout-full.yml
@@ -1,3 +1,6 @@
+parameters:
+ ARM64TclTk: true
+
jobs:
- job: Make_Layouts
displayName: Make layouts
@@ -26,7 +29,8 @@ jobs:
HostArch: amd64
Python: $(Build.BinariesDirectory)\bin_amd64\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
- TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
+ ${{ if eq(parameters.ARM64TclTk, true) }}:
+ TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
steps:
- template: ./checkout.yml
diff --git a/.azure-pipelines/windows-release/stage-layout-msix.yml b/.azure-pipelines/windows-release/stage-layout-msix.yml
index 913bfcd919704..a44e1ede20326 100644
--- a/.azure-pipelines/windows-release/stage-layout-msix.yml
+++ b/.azure-pipelines/windows-release/stage-layout-msix.yml
@@ -1,3 +1,6 @@
+parameters:
+ ARM64TclTk: true
+
jobs:
- job: Make_MSIX_Layout
displayName: Make MSIX layout
@@ -25,7 +28,8 @@ jobs:
HostArch: amd64
Python: $(Build.BinariesDirectory)\bin_amd64\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
- TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
+ ${{ if eq(parameters.ARM64TclTk, true) }}:
+ TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
steps:
- template: ./checkout.yml
diff --git a/.azure-pipelines/windows-release/stage-msi.yml b/.azure-pipelines/windows-release/stage-msi.yml
index f14bc9a45ae38..0566544a6eb63 100644
--- a/.azure-pipelines/windows-release/stage-msi.yml
+++ b/.azure-pipelines/windows-release/stage-msi.yml
@@ -1,3 +1,6 @@
+parameters:
+ ARM64TclTk: true
+
jobs:
- job: Make_MSI
displayName: Make MSI
@@ -16,6 +19,8 @@ jobs:
steps:
- template: msi-steps.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
- job: Make_Signed_MSI
displayName: Make signed MSI
@@ -34,3 +39,5 @@ jobs:
steps:
- template: msi-steps.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
More information about the Python-checkins
mailing list