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>
This commit is contained in:
Sviatoslav Sydorenko (Святослав Сидоренко) 2024-07-24 11:46:39 +02:00 committed by GitHub
parent e55b05f29e
commit af4329e7b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 56 additions and 40 deletions

View File

@ -48,6 +48,7 @@ jobs:
# }} # }}
# #
run-docs: ${{ steps.docs-changes.outputs.run-docs || false }} 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_tests: ${{ steps.check.outputs.run_tests || false }}
run_hypothesis: ${{ steps.check.outputs.run_hypothesis || false }} run_hypothesis: ${{ steps.check.outputs.run_hypothesis || false }}
run_cifuzz: ${{ steps.check.outputs.run_cifuzz || false }} run_cifuzz: ${{ steps.check.outputs.run_cifuzz || false }}
@ -123,6 +124,20 @@ jobs:
id: docs-changes id: docs-changes
run: | run: |
echo "run-docs=true" >> "${GITHUB_OUTPUT}" 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: check-docs:
name: Docs name: Docs
@ -218,6 +233,21 @@ jobs:
arch: ${{ matrix.arch }} arch: ${{ matrix.arch }}
free-threading: ${{ matrix.free-threading }} 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: build_macos:
name: 'macOS' name: 'macOS'
needs: check_source needs: check_source
@ -571,6 +601,7 @@ jobs:
- build_ubuntu_ssltests - build_ubuntu_ssltests
- build_wasi - build_wasi
- build_windows - build_windows
- build_windows_msi
- test_hypothesis - test_hypothesis
- build_asan - build_asan
- build_tsan - build_tsan
@ -585,6 +616,7 @@ jobs:
with: with:
allowed-failures: >- allowed-failures: >-
build_ubuntu_ssltests, build_ubuntu_ssltests,
build_windows_msi,
cifuzz, cifuzz,
test_hypothesis, test_hypothesis,
allowed-skips: >- allowed-skips: >-

View File

@ -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 }}

View File

@ -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 }}