https://github.com/python/cpython/commit/66dd17953df6637c136b2a8f0f72dc9db2fb1ae4
commit: 66dd17953df6637c136b2a8f0f72dc9db2fb1ae4
branch: 3.12
author: Hugo van Kemenade <[email protected]>
committer: hugovk <[email protected]>
date: 2026-04-02T15:53:27+03:00
summary:

[3.12] Remove MSI build from security-only branch (#148007)

files:
D .github/workflows/reusable-windows-msi.yml
M .github/workflows/build.yml
M .github/workflows/reusable-change-detection.yml
M .github/workflows/reusable-context.yml
M Tools/build/compute-changes.py

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2294f5151c14a2..d13ce4c1abdb67 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -215,22 +215,6 @@ jobs:
       arch: ${{ matrix.arch }}
       free-threading: ${{ matrix.free-threading }}
 
-  build-windows-msi:
-    name: >-  # ${{ '' } is a hack to nest jobs under the same sidebar category
-      Windows MSI${{ '' }}
-    needs: build-context
-    if: fromJSON(needs.build-context.outputs.run-windows-msi)
-    strategy:
-      fail-fast: false
-      matrix:
-        arch:
-        - x86
-        - x64
-        - arm64
-    uses: ./.github/workflows/reusable-windows-msi.yml
-    with:
-      arch: ${{ matrix.arch }}
-
   build-macos:
     name: >-
       macOS
@@ -539,7 +523,6 @@ jobs:
     - check-autoconf-regen
     - check-generated-files
     - build-windows
-    - build-windows-msi
     - build-macos
     - build-ubuntu
     - build-ubuntu-ssltests
@@ -553,7 +536,6 @@ jobs:
       uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
       with:
         allowed-failures: >-
-          build-windows-msi,
           build-ubuntu-ssltests,
           test-hypothesis,
         allowed-skips: >-
diff --git a/.github/workflows/reusable-change-detection.yml 
b/.github/workflows/reusable-change-detection.yml
index 2a421673c700cc..10b829d334ab33 100644
--- a/.github/workflows/reusable-change-detection.yml
+++ b/.github/workflows/reusable-change-detection.yml
@@ -32,10 +32,6 @@ on:  # yamllint disable-line rule:truthy
       run_tests:
         description: Whether to run the regular tests
         value: ${{ jobs.compute-changes.outputs.run-tests || false }}  # bool
-      run-win-msi:
-        description: Whether to run the MSI installer smoke tests
-        value: >-  # bool
-          ${{ jobs.compute-changes.outputs.run-win-msi || false }}
       run_hypothesis:
         description: Whether to run the Hypothesis tests
         value: >-  # bool
@@ -56,7 +52,6 @@ jobs:
       run-docs: ${{ steps.docs-changes.outputs.run-docs }}
       run-hypothesis: ${{ steps.check.outputs.run-hypothesis }}
       run-tests: ${{ steps.check.outputs.run-tests }}
-      run-win-msi: ${{ steps.win-msi-changes.outputs.run-win-msi }}
     steps:
     - run: >-
         echo '${{ github.event_name }}'
@@ -136,23 +131,3 @@ jobs:
       id: docs-changes
       run: |
         echo "run-docs=true" >> "${GITHUB_OUTPUT}"
-    - name: Get a list of the MSI installer-related files
-      if: github.event_name == 'pull_request'
-      id: changed-win-msi-files
-      uses: Ana06/[email protected]
-      with:
-        filter: |
-          Tools/msi/**
-          .github/workflows/reusable-windows-msi.yml
-        format: csv  # works for paths with spaces
-    - name: Check for changes in MSI installer-related files
-      # We only want to run this on PRs when related files are changed,
-      # or when user triggers manual workflow run.
-      if: >-
-        (
-          github.event_name == 'pull_request'
-          && steps.changed-win-msi-files.outputs.added_modified_renamed != ''
-        ) || github.event_name == 'workflow_dispatch'
-      id: win-msi-changes
-      run: |
-        echo "run-win-msi=true" >> "${GITHUB_OUTPUT}"
diff --git a/.github/workflows/reusable-context.yml 
b/.github/workflows/reusable-context.yml
index 9786742dad6a67..66d56805ce51fa 100644
--- a/.github/workflows/reusable-context.yml
+++ b/.github/workflows/reusable-context.yml
@@ -29,9 +29,6 @@ on:  # yamllint disable-line rule:truthy
       run-windows-tests:
         description: Whether to run the Windows tests
         value: ${{ jobs.compute-changes.outputs.run-windows-tests }}  # bool
-      run-windows-msi:
-        description: Whether to run the MSI installer smoke tests
-        value: ${{ jobs.compute-changes.outputs.run-windows-msi }}  # bool
       run-ci-fuzz:
         description: Whether to run the CIFuzz job
         value: ${{ jobs.compute-changes.outputs.run-ci-fuzz }}  # bool
@@ -46,7 +43,6 @@ jobs:
       run-ci-fuzz: ${{ steps.changes.outputs.run-ci-fuzz }}
       run-docs: ${{ steps.changes.outputs.run-docs }}
       run-tests: ${{ steps.changes.outputs.run-tests }}
-      run-windows-msi: ${{ steps.changes.outputs.run-windows-msi }}
       run-windows-tests: ${{ steps.changes.outputs.run-windows-tests }}
     steps:
     - name: Set up Python
diff --git a/.github/workflows/reusable-windows-msi.yml 
b/.github/workflows/reusable-windows-msi.yml
deleted file mode 100644
index b5bacabb392262..00000000000000
--- a/.github/workflows/reusable-windows-msi.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: Reusable Windows MSI
-
-on:
-  workflow_call:
-    inputs:
-      arch:
-        description: CPU architecture
-        required: true
-        type: string
-
-permissions:
-  contents: read
-
-env:
-  FORCE_COLOR: 1
-
-jobs:
-  build:
-    name: installer for ${{ inputs.arch }}
-    runs-on: windows-2022
-    timeout-minutes: 60
-    env:
-      ARCH: ${{ inputs.arch }}
-      IncludeFreethreaded: true
-    steps:
-    - uses: actions/checkout@v6
-      with:
-        persist-credentials: false
-    - name: Build CPython installer
-      run: ./Tools/msi/build.bat --doc -"${ARCH}"
-      shell: bash
diff --git a/Tools/build/compute-changes.py b/Tools/build/compute-changes.py
index b5993d29b92972..a4d006e1c845d2 100644
--- a/Tools/build/compute-changes.py
+++ b/Tools/build/compute-changes.py
@@ -51,7 +51,6 @@ class Outputs:
     run_ci_fuzz: bool = False
     run_docs: bool = False
     run_tests: bool = False
-    run_windows_msi: bool = False
     run_windows_tests: bool = False
 
 
@@ -79,9 +78,6 @@ def compute_changes() -> None:
     if outputs.run_docs:
         print("Build documentation")
 
-    if outputs.run_windows_msi:
-        print("Build Windows MSI")
-
     print(outputs)
 
     write_github_output(outputs)
@@ -116,7 +112,6 @@ def process_changed_files(changed_files: Set[Path]) -> 
Outputs:
     run_ci_fuzz = False
     run_docs = False
     run_windows_tests = False
-    run_windows_msi = False
 
     for file in changed_files:
         # Documentation files
@@ -128,8 +123,6 @@ def process_changed_files(changed_files: Set[Path]) -> 
Outputs:
                 run_tests = run_ci_fuzz = True
             if file.name == "reusable-docs.yml":
                 run_docs = True
-            if file.name == "reusable-windows-msi.yml":
-                run_windows_msi = True
 
         if not (
             doc_file
@@ -155,16 +148,11 @@ def process_changed_files(changed_files: Set[Path]) -> 
Outputs:
         if doc_file:
             run_docs = True
 
-        # Check for changed MSI installer-related files
-        if file.parts[:2] == ("Tools", "msi"):
-            run_windows_msi = True
-
     return Outputs(
         run_ci_fuzz=run_ci_fuzz,
         run_docs=run_docs,
         run_tests=run_tests,
         run_windows_tests=run_windows_tests,
-        run_windows_msi=run_windows_msi,
     )
 
 
@@ -178,7 +166,6 @@ def process_target_branch(outputs: Outputs, git_branch: 
str) -> Outputs:
 
     if os.environ.get("GITHUB_EVENT_NAME", "").lower() == "workflow_dispatch":
         outputs.run_docs = True
-        outputs.run_windows_msi = True
 
     return outputs
 
@@ -195,7 +182,6 @@ def write_github_output(outputs: Outputs) -> None:
         f.write(f"run-docs={bool_lower(outputs.run_docs)}\n")
         f.write(f"run-tests={bool_lower(outputs.run_tests)}\n")
         f.write(f"run-windows-tests={bool_lower(outputs.run_windows_tests)}\n")
-        f.write(f"run-windows-msi={bool_lower(outputs.run_windows_msi)}\n")
 
 
 def bool_lower(value: bool, /) -> str:

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to