Windows-build-CI #171
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows-build-CI | |
on: | |
workflow_dispatch: | |
inputs: | |
branch: | |
description: 'The branch to build' | |
required: true | |
default: '3.10' | |
tag_short_version: | |
description: 'The short version of cpython upstream, eg: use 3.10.0 instead of v3.10.0' | |
required: true | |
default: '3.10.0' | |
jobs: | |
build: | |
env: | |
APP_NAME: windows-python-installer | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
ref: ${{ github.event.inputs.branch }} | |
- name: 'Checkout and push specified tag version of cpython' | |
run: | | |
git status | |
git config --global pull.rebase false | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
cd cpython | |
git remote -v | |
git fetch --all --tags | |
git checkout tags/v${{ github.event.inputs.tag_short_version }} | |
git status | |
cd .. | |
git add cpython | |
git commit -m "update python to ${{ github.event.inputs.tag_short_version }}" | |
git tag ${{ github.event.inputs.tag_short_version }} | |
git push | |
git push --tag | |
- name: Fix build failure for cpython v3.10.16, v3.11.11, v3.12.8 and v3.13.1 | |
if: contains(fromJSON('["3.10.16", "3.11.11", "3.12.8", "3.13.1"]'), github.event.inputs.tag_short_version) | |
run: | | |
rem try to fix 'gh-issue:' or 'bpo:' must be specified in the metadata! | |
rem https://github.com/python/cpython/pull/128875 | |
rem https://github.com/python/blurb/pull/35/files | |
rem https://github.com/python/cpython/pull/128890/commits | |
# git cherry-pick 606fd98551df973262f02a1e5f469e44ec4613ec || echo "Cherry-pick failed. Resolve conflicts manually." | |
find Misc/NEWS.d/ -type f -name '*.rst' -exec sed -i 's/\.. gh:/.. gh-issue:/g' {} + | |
shell: bash | |
- name: Install HTML Help Workshop as hhc.exe is need when build chm | |
run: | | |
rem unzip resources/html_help_workshop.zip | |
resources\htmlhelp.exe /T:%cd%\html_help_workshop /C /Q | |
echo %cd%\html_help_workshop>> %GITHUB_PATH% | |
shell: cmd | |
- name: Testing ${{ github.event.inputs.tag_short_version }}... | |
run: | | |
echo %PATH% | |
where hh hhc | |
echo GITHUB_REF_NAME: %GITHUB_REF_NAME% | |
echo github.event.inputs.tag_short_version: ${{ github.event.inputs.tag_short_version }} | |
shell: cmd | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Download source code of dependencies (OpenSSL, Tk, etc.) | |
run: | | |
call PCbuild/get_externals.bat | |
call Tools/msi/get_externals.bat | |
working-directory: cpython | |
shell: cmd | |
- name: Apply patches ... | |
run: | | |
git apply ../patches/layout.html.patch | |
git apply ../patches/PythonBootstrapperApplication.cpp.patch | |
git apply ../patches/exe_files.wxs.patch | |
git status | |
git diff | |
working-directory: cpython | |
- name: Copy api-ms-win-core-path-l1-1-0.dll to cpython/PCbuild/{win32,amd64}/ | |
run: | | |
unzip resources/api-ms-win-core-path-blender-0.3.1.zip | |
mkdir -p cpython/PCbuild/{win32,amd64} | |
cp api-ms-win-core-path-blender/x86/api-ms-win-core-path-l1-1-0.dll cpython/PCbuild/win32/ | |
cp api-ms-win-core-path-blender/x64/api-ms-win-core-path-l1-1-0.dll cpython/PCbuild/amd64/ | |
shell: bash | |
- name: Building ... | |
run: | | |
rem -b -> Incrementally build Python rather than rebuilding | |
rem -D -> Do not build documentation | |
rem --skip-pgo -> Build x64 installers without using PGO | |
rem documentation is shared by all platforms, so we need to build it only once | |
call Tools\msi\buildrelease.bat -x86 -b | |
call Tools\msi\buildrelease.bat -x64 -b -D | |
working-directory: cpython | |
shell: cmd | |
- name: Checking files ... | |
run: | | |
ls -l Doc/build/htmlhelp/ PCbuild/win32/en-us/ PCbuild/amd64/en-us/ | |
working-directory: cpython | |
shell: bash | |
- uses: xresloader/upload-to-github-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.event.inputs.tag_short_version }} | |
file: |- | |
cpython/Doc/build/htmlhelp/python*.chm; | |
cpython/PCbuild/win32/en-us/python-${{ github.event.inputs.tag_short_version }}-embed-win32.zip; | |
cpython/PCbuild/win32/en-us/python-${{ github.event.inputs.tag_short_version }}.exe; | |
cpython/PCbuild/amd64/en-us/python-${{ github.event.inputs.tag_short_version }}-embed-amd64.zip; | |
cpython/PCbuild/amd64/en-us/python-${{ github.event.inputs.tag_short_version }}-amd64.exe | |
tags: true | |
draft: false | |
overwrite: true |