https://github.com/python/cpython/commit/af4329e7b1a25d58bb92f79480f5059c3683517b
commit: af4329e7b1a25d58bb92f79480f5059c3683517b
branch: main
author: Sviatoslav Sydorenko (Святослав Сидоренко) 
<[email protected]>
committer: hugovk <[email protected]>
date: 2024-07-24T03:46:39-06:00
summary:

Integrate `build_msi` into main CI workflow (#121778)

Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Adam Turner <[email protected]>

files:
A .github/workflows/reusable-windows-msi.yml
D .github/workflows/build_msi.yml
M .github/workflows/build.yml

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index fc5b98f0220626..5c894abda71a87 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -48,6 +48,7 @@ jobs:
       #   }}
       #
       run-docs: ${{ steps.docs-changes.outputs.run-docs || false }}
+      run-win-msi: ${{ steps.win-msi-changes.outputs.run-win-msi || false }}
       run_tests: ${{ steps.check.outputs.run_tests || false }}
       run_hypothesis: ${{ steps.check.outputs.run_hypothesis || false }}
       run_cifuzz: ${{ steps.check.outputs.run_cifuzz || false }}
@@ -123,6 +124,20 @@ jobs:
         id: docs-changes
         run: |
           echo "run-docs=true" >> "${GITHUB_OUTPUT}"
+      - name: Get a list of the MSI installer-related files
+        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
+        if: >-
+          steps.changed-win-msi-files.outputs.added_modified_renamed != ''
+        id: win-msi-changes
+        run: |
+          echo "run-win-msi=true" >> "${GITHUB_OUTPUT}"
 
   check-docs:
     name: Docs
@@ -218,6 +233,21 @@ 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: check_source
+    if: fromJSON(needs.check_source.outputs.run-win-msi)
+    strategy:
+      matrix:
+        arch:
+        - x86
+        - x64
+        - arm64
+    uses: ./.github/workflows/reusable-windows-msi.yml
+    with:
+      arch: ${{ matrix.arch }}
+
   build_macos:
     name: 'macOS'
     needs: check_source
@@ -571,6 +601,7 @@ jobs:
     - build_ubuntu_ssltests
     - build_wasi
     - build_windows
+    - build_windows_msi
     - test_hypothesis
     - build_asan
     - build_tsan
@@ -585,6 +616,7 @@ jobs:
       with:
         allowed-failures: >-
           build_ubuntu_ssltests,
+          build_windows_msi,
           cifuzz,
           test_hypothesis,
         allowed-skips: >-
diff --git a/.github/workflows/build_msi.yml b/.github/workflows/build_msi.yml
deleted file mode 100644
index 65d32c734e7745..00000000000000
--- a/.github/workflows/build_msi.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-name: TestsMSI
-
-on:
-  workflow_dispatch:
-  push:
-    branches:
-    - 'main'
-    - '3.*'
-    paths:
-    - 'Tools/msi/**'
-    - '.github/workflows/build_msi.yml'
-  pull_request:
-    branches:
-    - 'main'
-    - '3.*'
-    paths:
-    - 'Tools/msi/**'
-    - '.github/workflows/build_msi.yml'
-
-permissions:
-  contents: read
-
-concurrency:
-  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
-  cancel-in-progress: true
-
-jobs:
-  build:
-    name: Windows Installer
-    runs-on: windows-latest
-    timeout-minutes: 60
-    strategy:
-      matrix:
-        type: [x86, x64, arm64]
-    env:
-      IncludeFreethreaded: true
-    steps:
-    - uses: actions/checkout@v4
-    - name: Build CPython installer
-      run: .\Tools\msi\build.bat --doc -${{ matrix.type }}
diff --git a/.github/workflows/reusable-windows-msi.yml 
b/.github/workflows/reusable-windows-msi.yml
new file mode 100644
index 00000000000000..fc34ab7c3eb1f2
--- /dev/null
+++ b/.github/workflows/reusable-windows-msi.yml
@@ -0,0 +1,24 @@
+name: TestsMSI
+
+on:
+  workflow_call:
+    inputs:
+      arch:
+        description: CPU architecture
+        required: true
+        type: string
+
+permissions:
+  contents: read
+
+jobs:
+  build:
+    name: installer for ${{ inputs.arch }}
+    runs-on: windows-latest
+    timeout-minutes: 60
+    env:
+      IncludeFreethreaded: true
+    steps:
+    - uses: actions/checkout@v4
+    - name: Build CPython installer
+      run: .\Tools\msi\build.bat --doc -${{ inputs.arch }}

_______________________________________________
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