Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
df4b310
Enable _sqlite3
FeodorFitsner Oct 20, 2024
f01f2e9
Add libc++_shared.so to Android distro
FeodorFitsner Oct 21, 2024
b9a660a
Fix NDK path to libc++_shared.so
FeodorFitsner Oct 21, 2024
8439c4b
Android build updated from Chaquopy (#2)
FeodorFitsner Dec 5, 2024
911fbc5
Include libssl and libcrypto to macOS framework bundle
FeodorFitsner Dec 10, 2024
520fa48
Python 3.12.8 and back to beeware/Python-Apple-support
FeodorFitsner Dec 17, 2024
b961307
MinimumOSVersion=13.0
FeodorFitsner Feb 5, 2025
d4c7bd3
Fix Windows build
FeodorFitsner Feb 5, 2025
76b5213
Exclude ctypes/macholib/fetch_macholib from iOS distro
FeodorFitsner Feb 5, 2025
178f047
Python 3.12.9
FeodorFitsner Feb 9, 2025
0001600
Update path in .origin
FeodorFitsner Feb 15, 2025
32f0bb5
Add PrivacyInfo.xcprivacy to some frameworks, rebuild Darwin libs
FeodorFitsner Feb 23, 2025
46f18c4
exclude header "pyport.h"
FeodorFitsner Mar 5, 2025
f0e6bb0
Use "v2" (SSE instructions) Python distributive on Linux
FeodorFitsner Aug 28, 2025
324ef8d
Update secure GitHub token in AppVeyor config
FeodorFitsner Aug 28, 2025
b6d4381
Fix framework identifier formatting in xcframework_utils.sh
FeodorFitsner Nov 16, 2025
f05b14c
Enable macOS build job in AppVeyor config
FeodorFitsner Nov 16, 2025
11591f7
Exclude module.modulemap from framework headers
FeodorFitsner Nov 16, 2025
afdce86
Fix CFBundlePackageType in generated plist
FeodorFitsner Nov 16, 2025
7a89035
Migrate CI from AppVeyor to GitHub Actions
FeodorFitsner Feb 8, 2026
a09e212
Run Python build on pushes to any branch
FeodorFitsner Feb 8, 2026
3171ce5
Use macos-15 runner in build workflow
FeodorFitsner Feb 8, 2026
08578c6
Update Windows Python installer in workflow
FeodorFitsner Feb 8, 2026
d4b804c
Bump setup-python and add Windows Python var
FeodorFitsner Feb 8, 2026
0956883
Use PYTHON_VERSION_SHORT for setup-python
FeodorFitsner Feb 8, 2026
01f1a29
Use env bash and set strict shell options
FeodorFitsner Feb 8, 2026
52ee1ce
Add PYTHON_DIST_RELEASE and fix version var
FeodorFitsner Feb 8, 2026
c75bf73
Bump Android NDK version to r29
FeodorFitsner Feb 8, 2026
0ec297d
Revamp Windows build; disable other jobs
FeodorFitsner Feb 8, 2026
ff063fd
Show package dir on missing files; drop doc checks
FeodorFitsner Feb 8, 2026
f7b2476
Prune unnecessary files from Windows Python package
FeodorFitsner Feb 8, 2026
73f3a5c
Prune extra lib dirs and pip packages
FeodorFitsner Feb 8, 2026
eb9e206
Move Windows Python packaging to script
FeodorFitsner Feb 8, 2026
103ce80
Enable platform build and release jobs in CI
FeodorFitsner Feb 9, 2026
272f487
Copy pyconfig.h into Windows package include
FeodorFitsner Feb 9, 2026
3da5a6c
Setup Python and print version in workflow
FeodorFitsner Feb 9, 2026
e77e017
Prune empty dirs and drop Scripts requirement
FeodorFitsner Feb 9, 2026
43cd474
Use python executable & multiline PS args
FeodorFitsner Feb 9, 2026
e4d0176
Force PCbuild to use configured Python
FeodorFitsner Feb 9, 2026
9c1f9d6
Use short Python version for release tag
FeodorFitsner Feb 9, 2026
4be7726
Support Python 3.13 Android builds and packaging
FeodorFitsner Feb 10, 2026
6c39e46
Make packaging scripts robust for Python versions
FeodorFitsner Feb 10, 2026
534dfb9
Migrate Android build to official Python 3.13 flow
FeodorFitsner Feb 10, 2026
a6b8971
Derive PYTHON_VERSION_SHORT and validate env vars
FeodorFitsner Feb 12, 2026
7af62ca
Add legacy Android build support & patches
FeodorFitsner Feb 12, 2026
0a05ec7
Use Python 3.12.12 in CI workflow
FeodorFitsner Feb 12, 2026
b83e652
Introduce reusable Python build workflow
FeodorFitsner Feb 12, 2026
47a594c
Make reusable Python workflow dispatchable
FeodorFitsner Feb 12, 2026
a52998c
Use extracted Python interpreter for compileall
FeodorFitsner Feb 12, 2026
cdb69b4
Bump setup-python to v6; improve python detection
FeodorFitsner Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 0 additions & 162 deletions .appveyor.yml

This file was deleted.

194 changes: 194 additions & 0 deletions .github/workflows/build-python-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
name: Build Python Version

on:
workflow_call:
inputs:
python_version:
description: Full Python version (e.g. 3.13.12)
required: true
type: string
workflow_dispatch:
inputs:
python_version:
description: Full Python version (e.g. 3.13.12)
required: true
type: choice
options:
- 3.12.12
- 3.13.12
- 3.14.3

env:
PYTHON_VERSION: ${{ inputs.python_version || github.event.inputs.python_version }}
PYTHON_DIST_RELEASE: 20260203 # https://github.com/astral-sh/python-build-standalone/releases

jobs:
build-darwin:
name: Build Python for iOS and macOS
runs-on: macos-15
permissions:
contents: write

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Derive short Python version
shell: bash
run: |
echo "PYTHON_VERSION_SHORT=$(echo "$PYTHON_VERSION" | cut -d. -f1,2)" >> "$GITHUB_ENV"

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION_SHORT }}

- name: Show Python version
run: python --version

- name: Build Python for iOS and macOS
working-directory: darwin
shell: bash
run: |
git clone --branch="$PYTHON_VERSION_SHORT" https://github.com/beeware/Python-Apple-support.git
mkdir -p dist

pushd Python-Apple-support
make iOS
tar -czf ../dist/python-ios-mobile-forge-$PYTHON_VERSION_SHORT.tar.gz install support -C .
make macOS
popd

bash ./package-ios-for-dart.sh Python-Apple-support "$PYTHON_VERSION_SHORT"
bash ./package-macos-for-dart.sh Python-Apple-support "$PYTHON_VERSION_SHORT"

- name: Upload Darwin build artifacts
uses: actions/upload-artifact@v4
with:
name: python-darwin-${{ env.PYTHON_VERSION_SHORT }}
path: darwin/dist/python-*.tar.gz
if-no-files-found: error

build-android:
name: Build Python for Android
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Derive short Python version
shell: bash
run: |
echo "PYTHON_VERSION_SHORT=$(echo "$PYTHON_VERSION" | cut -d. -f1,2)" >> "$GITHUB_ENV"
- uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
- run: python --version
- working-directory: android
shell: bash
run: |
bash ./build-all.sh "$PYTHON_VERSION"
mkdir -p dist
tar -czf dist/python-android-mobile-forge-$PYTHON_VERSION_SHORT.tar.gz install support
bash ./package-for-dart.sh install "$PYTHON_VERSION" arm64-v8a
bash ./package-for-dart.sh install "$PYTHON_VERSION" x86_64
read version_major version_minor < <(echo "$PYTHON_VERSION" | sed -E 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
version_int=$((version_major * 100 + version_minor))
if [ $version_int -lt 313 ]; then
bash ./package-for-dart.sh install "$PYTHON_VERSION" armeabi-v7a
fi
- uses: actions/upload-artifact@v4
with:
name: python-android-${{ env.PYTHON_VERSION_SHORT }}
path: android/dist/python-android-*.tar.gz
if-no-files-found: error

build-linux:
name: Build Python for Linux
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Derive short Python version
shell: bash
run: |
echo "PYTHON_VERSION_SHORT=$(echo "$PYTHON_VERSION" | cut -d. -f1,2)" >> "$GITHUB_ENV"
- uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
- run: python --version
- working-directory: linux
shell: bash
run: |
bash ./package-for-linux.sh x86_64 "_v2"
bash ./package-for-linux.sh aarch64 ""
- uses: actions/upload-artifact@v4
with:
name: python-linux-${{ env.PYTHON_VERSION_SHORT }}
path: linux/python-linux-dart-*.tar.gz
if-no-files-found: error

build-windows:
name: Build Python for Windows
runs-on: windows-2022
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Derive short Python version
shell: pwsh
run: |
$parts = "${{ env.PYTHON_VERSION }}".Split(".")
"PYTHON_VERSION_SHORT=$($parts[0]).$($parts[1])" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION_SHORT }}
- name: Show Python version
shell: pwsh
run: |
python --version
python -c "import sys; print(sys.executable)"
- name: Build CPython from sources and package for Dart
shell: pwsh
run: |
.\windows\package-for-dart.ps1 `
-PythonVersion "${{ env.PYTHON_VERSION }}" `
-PythonVersionShort "${{ env.PYTHON_VERSION_SHORT }}"
- uses: actions/upload-artifact@v4
with:
name: python-windows-${{ env.PYTHON_VERSION_SHORT }}
path: windows/python-windows-for-dart-*.zip
if-no-files-found: error

publish-release:
name: Publish Release Assets
runs-on: ubuntu-latest
needs:
- build-darwin
- build-android
- build-linux
- build-windows
permissions:
contents: write
steps:
- name: Derive short Python version
shell: bash
run: |
echo "PYTHON_VERSION_SHORT=$(echo "$PYTHON_VERSION" | cut -d. -f1,2)" >> "$GITHUB_ENV"
- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
pattern: python-*-${{ env.PYTHON_VERSION_SHORT }}
path: release-artifacts
merge-multiple: true

- name: Publish all artifacts to release
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ env.PYTHON_VERSION_SHORT }}
files: release-artifacts/*
fail_on_unmatched_files: true
generate_release_notes: false
draft: false
prerelease: false
22 changes: 22 additions & 0 deletions .github/workflows/build-python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Build Python Packages

on:
push:
branches:
- '**'
workflow_dispatch:

jobs:
build-matrix:
name: Build Python ${{ matrix.python_version }}
strategy:
fail-fast: false
matrix:
python_version:
- 3.12.12
- 3.13.12
- 3.14.3
uses: ./.github/workflows/build-python-version.yml
with:
python_version: ${{ matrix.python_version }}
secrets: inherit
Loading