summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorSviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>2024-07-24 09:46:39 (GMT)
committerGitHub <noreply@github.com>2024-07-24 09:46:39 (GMT)
commitaf4329e7b1a25d58bb92f79480f5059c3683517b (patch)
tree49dfb08cabf1bac2443843e1b75ed00c2f9ba392 /.github
parente55b05f29ee62cd92b6b9990fd699b78f19432ba (diff)
downloadcpython-af4329e7b1a25d58bb92f79480f5059c3683517b.zip
cpython-af4329e7b1a25d58bb92f79480f5059c3683517b.tar.gz
cpython-af4329e7b1a25d58bb92f79480f5059c3683517b.tar.bz2
Integrate `build_msi` into main CI workflow (#121778)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yml32
-rw-r--r--.github/workflows/build_msi.yml40
-rw-r--r--.github/workflows/reusable-windows-msi.yml24
3 files changed, 56 insertions, 40 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index fc5b98f..5c894ab 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/get-changed-files@v2.3.0
+ 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 65d32c7..0000000
--- 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 0000000..fc34ab7
--- /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 }}