b7e50455ad
PyGObject >= 3.52 dropped the standalone gobject-introspection girepository-1.0 dependency and now builds against girepository-2.0, which was merged into GLib 2.80. The linux extra pins PyGObject>=3.46 with no upper bound, so pip resolves the newest release (3.56.3) and meson aborts metadata generation with: Dependency 'girepository-2.0' is required but not found. because CI only installed the old libgirepository1.0-dev. Swap libgirepository1.0-dev -> libgirepository-2.0-dev (shipped by GLib 2.80 on the ubuntu-latest / 24.04 runner) across all three Linux pip-install paths so they stay in sync: - test.yml: the failing linux-smoke job. - release.yml: build-linux, which would otherwise ship a broken Linux tarball on the next tag. - build.yml: build-linux had no system-deps step at all; added the matching apt install so the manual artifact build works too. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
83 lines
2.2 KiB
YAML
83 lines
2.2 KiB
YAML
name: Build Artifacts
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'Version label (e.g. dev, 0.3.0-test)'
|
|
required: false
|
|
default: 'dev'
|
|
|
|
jobs:
|
|
build-windows:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Build frontend
|
|
run: npm ci && npm run build
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install build tools
|
|
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends nsis zip
|
|
|
|
- name: Build Windows distribution
|
|
run: |
|
|
chmod +x build-dist-windows.sh
|
|
./build-dist-windows.sh "v${{ inputs.version }}"
|
|
|
|
- name: Build NSIS installer
|
|
run: makensis -DVERSION="${{ inputs.version }}" installer.nsi
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: MediaServer-${{ inputs.version }}-win-x64
|
|
path: |
|
|
build/MediaServer-*.zip
|
|
build/MediaServer-*-setup.exe
|
|
retention-days: 90
|
|
|
|
build-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Build frontend
|
|
run: npm ci && npm run build
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install native deps for dbus-python + PyGObject
|
|
run: |
|
|
# PyGObject >= 3.52 builds against girepository-2.0 (merged into
|
|
# GLib 2.80), not the old standalone girepository-1.0. ubuntu-latest
|
|
# (24.04) ships it as libgirepository-2.0-dev.
|
|
sudo apt-get update
|
|
sudo apt-get install -y --no-install-recommends \
|
|
libdbus-1-dev libglib2.0-dev pkg-config \
|
|
libcairo2-dev libgirepository-2.0-dev
|
|
|
|
- name: Build Linux distribution
|
|
run: |
|
|
chmod +x build-dist-linux.sh
|
|
./build-dist-linux.sh "v${{ inputs.version }}"
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: MediaServer-${{ inputs.version }}-linux-x64
|
|
path: build/MediaServer-*-linux-x64.tar.gz
|
|
retention-days: 90
|