[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