Skip to content

examples: replace packaging.version with stdlib tuple comparison #24

examples: replace packaging.version with stdlib tuple comparison

examples: replace packaging.version with stdlib tuple comparison #24

Workflow file for this run

name: CI Windows
on:
push:
branches: [ "master", "cefpython147" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
inputs:
bypass_cache:
description: "Bypass all caches for a clean run"
type: boolean
default: false
jobs:
download-cef:
runs-on: windows-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Read CEF version
id: cef-version
run: |
$ver = (Select-String -Path src/version/cef_version_win.h `
-Pattern '#define CEF_VERSION "([^"]+)"').Matches[0].Groups[1].Value
echo "value=$ver" >> $env:GITHUB_OUTPUT
- name: Cache CEF binaries
uses: actions/cache@v4
if: ${{ inputs.bypass_cache != true }}
with:
path: |
build/cef_binary_*
build/cef*_win64
key: cef-windows64-${{ steps.cef-version.outputs.value }}
- name: Install build tools
run: python tools/requirements.py
- name: Download CEF binaries
run: python tools/download_cef.py
wheel:
needs: download-cef
runs-on: windows-latest
timeout-minutes: 75
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Read CEF version
id: cef-version
run: |
$ver = (Select-String -Path src/version/cef_version_win.h `
-Pattern '#define CEF_VERSION "([^"]+)"').Matches[0].Groups[1].Value
echo "value=$ver" >> $env:GITHUB_OUTPUT
- name: Restore CEF cache
uses: actions/cache/restore@v4
if: ${{ inputs.bypass_cache != true }}
with:
path: |
build/cef_binary_*
build/cef*_win64
key: cef-windows64-${{ steps.cef-version.outputs.value }}
- name: Install build tools
run: python tools/requirements.py
- name: Prepare prebuilt CEF
run: python tools/automate.py --prebuilt-cef
- name: Configure CMake
run: cmake -S . -B build/_cmake_build -A x64
- name: Build
run: cmake --build build/_cmake_build --config Release --parallel
- name: Stage build outputs
run: |
New-Item -ItemType Directory -Force build/artifacts
Copy-Item build/_cmake_build/Release/cefpython_py*.pyd build/artifacts/
Copy-Item build/_cmake_build/subprocess_build/Release/subprocess.exe build/artifacts/
$cefBin = (Get-ChildItem build/cef*_win64 -Directory | Select-Object -First 1).FullName + "/bin"
Get-ChildItem $cefBin | Where-Object { $_.Name -notmatch '^(cefclient|cefsimple|ceftests)' } |
ForEach-Object { Copy-Item $_.FullName build/artifacts/ -Recurse -Force }
- name: Set up cefpython3 package
run: |
Get-ChildItem build/artifacts/ | ForEach-Object {
Copy-Item $_.FullName cefpython3/ -Recurse -Force
}
- name: Run unit tests
run: python unittests/_test_runner.py
env:
PYTHONPATH: ${{ github.workspace }}
- name: Build wheel
run: python tools/build_distrib.py
- name: Upload wheel artifact
uses: actions/upload-artifact@v4
with:
name: cefpython3-py${{ matrix.python-version }}-win64
path: build/dist/*.whl