Skip to content

Windows-build-CI

Windows-build-CI #134

Workflow file for this run

name: Windows-build-CI
on:
workflow_dispatch:
inputs:
branch:
description: 'The branch to build'
required: true
default: '3.12'
tag_short_version:
description: 'The short version of cpython upstream, eg: use 3.12.0 instead of v3.12.0'
required: true
default: '3.12.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: 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 apply ../patches/posixmodule.c.patch
git apply ../patches/_winapi.c.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
rem build chm docs
rem see https://github.com/python/cpython/pull/32038
call Doc\make.bat htmlhelp
working-directory: cpython
shell: cmd
- name: Checking files ...
run: |
ls -l Doc/build/htmlhelp/ Doc/build/html/ PCbuild/win32/en-us/ PCbuild/amd64/en-us/ || true
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/win32/en-us/python*.nupkg;
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;
cpython/PCbuild/amd64/en-us/python*.nupkg;
tags: true
draft: false
overwrite: true