Some checks failed
Make distro packages the single source of truth for GTK/X11 Python bindings instead of advertising them as wheel-managed runtime dependencies. Update the uv, CI, and packaging workflows to use system site packages, regenerate uv.lock, and keep portable and Arch metadata aligned with that contract. Pull runtime policy, audio probing, and page builders out of config_ui.py so the settings window becomes a coordinator instead of a single large mixed-concern module. Rename the config serialization and logging helpers, and stop startup logging from exposing raw vocabulary entries or custom model paths. Remove stale helper aliases and add regression coverage for safe startup logging, packaging metadata and module drift, portable requirements, and the extracted audio helper behavior. Validated with uv lock, python3 -m compileall -q src tests, python3 -m unittest discover -s tests -p 'test_*.py', make build, and make package-arch.
135 lines
4.1 KiB
YAML
135 lines
4.1 KiB
YAML
name: ci
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
unit-matrix:
|
|
name: Unit Matrix (${{ matrix.python-version }})
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.10", "3.11", "3.12"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install Ubuntu runtime dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
gobject-introspection \
|
|
libcairo2-dev \
|
|
libgirepository1.0-dev \
|
|
libportaudio2 \
|
|
pkg-config \
|
|
python3-gi \
|
|
python3-xlib \
|
|
gir1.2-gtk-3.0 \
|
|
gir1.2-ayatanaappindicator3-0.1 \
|
|
libayatana-appindicator3-1
|
|
- name: Create project environment
|
|
run: |
|
|
python -m venv --system-site-packages .venv
|
|
. .venv/bin/activate
|
|
python -m pip install --upgrade pip
|
|
python -m pip install uv build
|
|
uv sync --active --frozen
|
|
echo "${GITHUB_WORKSPACE}/.venv/bin" >> "${GITHUB_PATH}"
|
|
- name: Run compile check
|
|
run: python -m compileall -q src tests
|
|
- name: Run unit and package-logic test suite
|
|
run: python -m unittest discover -s tests -p 'test_*.py'
|
|
|
|
portable-ubuntu-smoke:
|
|
name: Portable Ubuntu Smoke
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
- name: Install Ubuntu runtime dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
gobject-introspection \
|
|
libcairo2-dev \
|
|
libgirepository1.0-dev \
|
|
libportaudio2 \
|
|
pkg-config \
|
|
python3-gi \
|
|
python3-xlib \
|
|
gir1.2-gtk-3.0 \
|
|
gir1.2-ayatanaappindicator3-0.1 \
|
|
libayatana-appindicator3-1 \
|
|
xvfb
|
|
- name: Create project environment
|
|
run: |
|
|
python -m venv --system-site-packages .venv
|
|
. .venv/bin/activate
|
|
python -m pip install --upgrade pip
|
|
python -m pip install uv build
|
|
uv sync --active --frozen
|
|
echo "${GITHUB_WORKSPACE}/.venv/bin" >> "${GITHUB_PATH}"
|
|
- name: Run portable install and doctor smoke with distro python
|
|
env:
|
|
AMAN_CI_SYSTEM_PYTHON: /usr/bin/python3
|
|
run: bash ./scripts/ci_portable_smoke.sh
|
|
- name: Upload portable smoke logs
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: aman-portable-smoke-logs
|
|
path: build/ci-smoke
|
|
|
|
package-artifacts:
|
|
name: Package Artifacts
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- unit-matrix
|
|
- portable-ubuntu-smoke
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
- name: Install Ubuntu runtime dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
gobject-introspection \
|
|
libcairo2-dev \
|
|
libgirepository1.0-dev \
|
|
libportaudio2 \
|
|
pkg-config \
|
|
python3-gi \
|
|
python3-xlib \
|
|
gir1.2-gtk-3.0 \
|
|
gir1.2-ayatanaappindicator3-0.1 \
|
|
libayatana-appindicator3-1
|
|
- name: Create project environment
|
|
run: |
|
|
python -m venv --system-site-packages .venv
|
|
. .venv/bin/activate
|
|
python -m pip install --upgrade pip
|
|
python -m pip install uv build
|
|
uv sync --active --frozen
|
|
echo "${GITHUB_WORKSPACE}/.venv/bin" >> "${GITHUB_PATH}"
|
|
- name: Prepare release candidate artifacts
|
|
run: make release-prep
|
|
- name: Upload packaging artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: aman-artifacts
|
|
path: |
|
|
dist/*.whl
|
|
dist/*.tar.gz
|
|
dist/*.sha256
|
|
dist/SHA256SUMS
|
|
dist/*.deb
|
|
dist/arch/PKGBUILD
|
|
dist/arch/*.tar.gz
|