Skip to content

Add --in-process-gpu for Linux CI to fix OnContextInitialized timeout #17

Add --in-process-gpu for Linux CI to fix OnContextInitialized timeout

Add --in-process-gpu for Linux CI to fix OnContextInitialized timeout #17

Workflow file for this run

name: CI Windows
on:
push:
branches: [ "github-actions-ci", "master", "146-linux" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
inputs:
bypass_cache:
description: "Bypass all caches for a clean run"
type: boolean
default: false
jobs:
compile:
runs-on: windows-latest
timeout-minutes: 60
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: 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
- 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: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-py${{ matrix.python-version }}-win64
path: build/artifacts/
retention-days: 1
test:
needs: compile
runs-on: windows-latest
timeout-minutes: 30
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: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-py${{ matrix.python-version }}-win64
path: build/artifacts/
- name: Set up cefpython3 package for testing
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 }}
wheel:
needs: test
runs-on: windows-latest
timeout-minutes: 15
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: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-py${{ matrix.python-version }}-win64
path: build/artifacts/
- name: Set up cefpython3 package
run: |
Get-ChildItem build/artifacts/ | ForEach-Object {
Copy-Item $_.FullName cefpython3/ -Recurse -Force
}
- 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