From b060abf9270cbc07efb81b44ee783d65a98c84cc Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 May 2025 13:04:57 +0100 Subject: [PATCH 1/6] Remove old layout condition check from Windows release build --- windows-release/azure-pipelines.yml | 2 +- windows-release/stage-layout-embed.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/windows-release/azure-pipelines.yml b/windows-release/azure-pipelines.yml index 9c17f6d5..9100fd8b 100644 --- a/windows-release/azure-pipelines.yml +++ b/windows-release/azure-pipelines.yml @@ -78,7 +78,7 @@ parameters: type: boolean default: true - name: DoEmbed - displayName: "Produce embeddable package" + displayName: "Produce embeddable package (w/ PyManager or MSI options)" type: boolean default: true - name: DoMSI diff --git a/windows-release/stage-layout-embed.yml b/windows-release/stage-layout-embed.yml index 45bda808..bdd3b4e9 100644 --- a/windows-release/stage-layout-embed.yml +++ b/windows-release/stage-layout-embed.yml @@ -4,7 +4,6 @@ parameters: jobs: - job: Make_Embed_Layout displayName: Make embeddable layout - condition: and(succeeded(), eq(variables['DoEmbed'], 'true')) pool: vmImage: windows-2022 From 1fdf676dee863dff9ce43dc0ab705723d239f922 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 May 2025 13:28:07 +0100 Subject: [PATCH 2/6] Enable signing for MSI --- windows-release/azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/windows-release/azure-pipelines.yml b/windows-release/azure-pipelines.yml index 9100fd8b..4f3be35a 100644 --- a/windows-release/azure-pipelines.yml +++ b/windows-release/azure-pipelines.yml @@ -224,6 +224,7 @@ stages: BuildToPackage: ${{ parameters.BuildToPackage }} DoARM64: ${{ parameters.DoARM64}} DoFreethreaded: ${{ parameters.DoFreethreaded }} + SigningCertificate: ${{ parameters.SigningCertificate }} - ${{ if eq(parameters.DoMSIX, 'true') }}: - template: stage-pack-msix.yml parameters: From d67b84718f4d9aae40ebec11de59c43409d17284 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 May 2025 15:46:12 +0100 Subject: [PATCH 3/6] Ensure SigningCertificate variable is set so that WiX detects it --- windows-release/azure-pipelines.yml | 6 +++++- windows-release/msi-steps.yml | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/windows-release/azure-pipelines.yml b/windows-release/azure-pipelines.yml index 4f3be35a..d0705249 100644 --- a/windows-release/azure-pipelines.yml +++ b/windows-release/azure-pipelines.yml @@ -85,6 +85,10 @@ parameters: displayName: "Produce EXE/MSI installer" type: boolean default: true +- name: TestMSI + displayName: "Run EXE/MSI installer tests" + type: boolean + default: true - name: DoPyManager displayName: "Produce PyManager package" type: boolean @@ -248,7 +252,7 @@ stages: jobs: - ${{ if eq(parameters.DoEmbed, 'true') }}: - template: stage-test-embed.yml - - ${{ if eq(parameters.DoMSI, 'true') }}: + - ${{ if and(eq(parameters.DoMSI, 'true'), eq(parameters.TestMSI, 'true')) }}: - template: stage-test-msi.yml parameters: DoFreethreaded: ${{ parameters.DoFreethreaded }} diff --git a/windows-release/msi-steps.yml b/windows-release/msi-steps.yml index 52c4a9df..ce01ca13 100644 --- a/windows-release/msi-steps.yml +++ b/windows-release/msi-steps.yml @@ -85,6 +85,8 @@ steps: AZURE_TENANT_ID: $(TrustedSigningTenantId) AZURE_CLIENT_ID: $(TrustedSigningClientId) AZURE_CLIENT_SECRET: $(TrustedSigningSecret) + # Only need the variable here for msi.props to detect + SigningCertificate: ${{ parameters.SigningCertificate }} - ${{ each b in parameters.Bundles }}: - script: | @@ -101,6 +103,8 @@ steps: AZURE_TENANT_ID: $(TrustedSigningTenantId) AZURE_CLIENT_ID: $(TrustedSigningClientId) AZURE_CLIENT_SECRET: $(TrustedSigningSecret) + # Only need the variable here for msi.props to detect + SigningCertificate: ${{ parameters.SigningCertificate }} - powershell: | del $env:ResponseFile -ErrorAction Continue From bd6b6427306a3ad6b95bcd0dc3a077683c6fe488 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 May 2025 16:29:44 +0100 Subject: [PATCH 4/6] We don't publish Doc anymore --- windows-release/stage-publish-pythonorg.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/windows-release/stage-publish-pythonorg.yml b/windows-release/stage-publish-pythonorg.yml index 7597606b..61355e3e 100644 --- a/windows-release/stage-publish-pythonorg.yml +++ b/windows-release/stage-publish-pythonorg.yml @@ -24,20 +24,6 @@ jobs: inputs: versionSpec: '>=3.10' - - task: DownloadPipelineArtifact@2 - displayName: 'Download artifact: Doc' - inputs: - ${{ if eq(parameters.BuildToPublish, 'current') }}: - buildType: current - ${{ else }}: - buildType: specific - buildVersionToDownload: specific - project: $(resources.pipeline.build_to_publish.projectId) - pipeline: $(resources.pipeline.build_to_publish.pipelineId) - runId: $(resources.pipeline.build_to_publish.runID) - artifact: Doc - targetPath: $(Pipeline.Workspace)\Doc - - task: DownloadPipelineArtifact@2 displayName: 'Download artifact: msi' inputs: From 9620c1d247b2e6199a09f122722c4214281552e0 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 May 2025 16:37:19 +0100 Subject: [PATCH 5/6] Fix argument name of download stages --- windows-release/stage-publish-pythonorg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows-release/stage-publish-pythonorg.yml b/windows-release/stage-publish-pythonorg.yml index 61355e3e..604c5dc0 100644 --- a/windows-release/stage-publish-pythonorg.yml +++ b/windows-release/stage-publish-pythonorg.yml @@ -49,7 +49,7 @@ jobs: buildVersionToDownload: specific project: $(resources.pipeline.build_to_publish.projectId) pipeline: $(resources.pipeline.build_to_publish.pipelineId) - runId: $(resources.pipeline.build_to_publish.runID) + buildId: $(resources.pipeline.build_to_publish.runID) artifactName: embed downloadPath: $(Pipeline.Workspace) @@ -63,7 +63,7 @@ jobs: buildVersionToDownload: specific project: $(resources.pipeline.build_to_publish.projectId) pipeline: $(resources.pipeline.build_to_publish.pipelineId) - runId: $(resources.pipeline.build_to_publish.runID) + buildId: $(resources.pipeline.build_to_publish.runID) artifactName: sbom downloadPath: $(Pipeline.Workspace) From a60637c4fe7f575af54998338febc42e89e4dedc Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 May 2025 16:38:46 +0100 Subject: [PATCH 6/6] Helpful comments for the future --- windows-release/stage-publish-pythonorg.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows-release/stage-publish-pythonorg.yml b/windows-release/stage-publish-pythonorg.yml index 604c5dc0..b6cdfc56 100644 --- a/windows-release/stage-publish-pythonorg.yml +++ b/windows-release/stage-publish-pythonorg.yml @@ -51,6 +51,7 @@ jobs: pipeline: $(resources.pipeline.build_to_publish.pipelineId) buildId: $(resources.pipeline.build_to_publish.runID) artifactName: embed + # Artifact name is added to path for DownloadBuildArtifacts downloadPath: $(Pipeline.Workspace) - task: DownloadBuildArtifacts@1 @@ -65,6 +66,7 @@ jobs: pipeline: $(resources.pipeline.build_to_publish.pipelineId) buildId: $(resources.pipeline.build_to_publish.runID) artifactName: sbom + # Artifact name is added to path for DownloadBuildArtifacts downloadPath: $(Pipeline.Workspace)