Simplify release workflow; node and .NET are runner prerequisites
Drop the per-job uv-installed nodejs-wheel steps — runner hosts must have git, uv, node/npm and the .NET SDK installed system-wide.
This commit is contained in:
@@ -5,6 +5,7 @@ on:
|
|||||||
tags:
|
tags:
|
||||||
- "v*"
|
- "v*"
|
||||||
|
|
||||||
|
# Runner host prerequisites: git, uv, node/npm, .NET SDK.
|
||||||
jobs:
|
jobs:
|
||||||
gui-build:
|
gui-build:
|
||||||
strategy:
|
strategy:
|
||||||
@@ -19,34 +20,16 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
# Plain git clone instead of actions/checkout (a JS action that would
|
# Plain git clone: full history so setuptools_scm sees tags, and both
|
||||||
# require node on the host). Full history so setuptools_scm sees tags.
|
# shells work. Windows uses cmd: bash resolves to WSL (refuses SYSTEM
|
||||||
# ${{ }} expressions are substituted by the runner, so both shells work.
|
# accounts) and powershell hits the script execution policy under SYSTEM.
|
||||||
# Windows uses cmd: bash resolves to WSL (refuses SYSTEM accounts) and
|
|
||||||
# powershell hits the script execution policy under SYSTEM.
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
shell: ${{ matrix.shell }}
|
shell: ${{ matrix.shell }}
|
||||||
run: |
|
run: |
|
||||||
git clone "${{ gitea.server_url }}/${{ gitea.repository }}.git" .
|
git clone "${{ gitea.server_url }}/${{ gitea.repository }}.git" .
|
||||||
git checkout -f "${{ gitea.sha }}"
|
git checkout -f "${{ gitea.sha }}"
|
||||||
|
|
||||||
# The sdist build compiles the Vue frontend and needs node/npm.
|
- name: Build GUI app and dist packages
|
||||||
# Install per-job via uv so runner hosts don't need node set up.
|
|
||||||
- name: Install Node.js
|
|
||||||
if: matrix.os != 'windows'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
uv tool install nodejs-wheel
|
|
||||||
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
||||||
|
|
||||||
- name: Install Node.js (Windows)
|
|
||||||
if: matrix.os == 'windows'
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
uv tool install nodejs-wheel
|
|
||||||
echo %USERPROFILE%\.local\bin>>"%GITHUB_PATH%"
|
|
||||||
|
|
||||||
- name: Build GUI app zip and dist packages
|
|
||||||
shell: ${{ matrix.shell }}
|
shell: ${{ matrix.shell }}
|
||||||
run: uv run --extra gui scripts/guibuild.py
|
run: uv run --extra gui scripts/guibuild.py
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -44,7 +44,7 @@ This launches the same pywebview-based desktop flow used by the Windows build.
|
|||||||
|
|
||||||
The helper scripts are directly executable via their `uv run` shebang (on Windows, run them with `uv run scripts/<name>.py`):
|
The helper scripts are directly executable via their `uv run` shebang (on Windows, run them with `uv run scripts/<name>.py`):
|
||||||
|
|
||||||
- `./scripts/guibuild.py` builds the PyInstaller desktop app and packages it with Velopack under `build/`: per-user `Setup.exe` (Windows), `.pkg` installer (macOS), `.AppImage` (Linux), plus the update feed in `build/velopack/`. On Windows it also creates a `-win64-portable.zip` (no auto-updates). Requires the .NET SDK (>= 8 runtime) installed on the build host; `vpk` and ffmpeg are downloaded once into a persistent user cache (`~/.cache/mediahive-build`, `%LOCALAPPDATA%\mediahive-build` on Windows).
|
- `./scripts/guibuild.py` builds the PyInstaller desktop app and packages it with Velopack under `build/`: per-user `Setup.exe` (Windows), `.pkg` installer (macOS), `.AppImage` (Linux), plus the update feed in `build/velopack/`. On Windows it also creates a `-win64-portable.zip` (no auto-updates). Requires node/npm and the .NET SDK (>= 10 runtime) installed on the build host; `vpk` and ffmpeg are downloaded once into a persistent user cache (`~/.cache/mediahive-build`, `%LOCALAPPDATA%\mediahive-build` on Windows).
|
||||||
- `./scripts/release.py` publishes a release to the Gitea releases page, uploading the platform artifacts and the Velopack update feed files — installed apps auto-update from the latest release.
|
- `./scripts/release.py` publishes a release to the Gitea releases page, uploading the platform artifacts and the Velopack update feed files — installed apps auto-update from the latest release.
|
||||||
|
|
||||||
Python packaging builds the frontend automatically through the hatch build hook `scripts/fastapi-vue/buildhook.py` (see `pyproject.toml`), so wheels and sdists always ship a fresh `mediahive/frontend-build`.
|
Python packaging builds the frontend automatically through the hatch build hook `scripts/fastapi-vue/buildhook.py` (see `pyproject.toml`), so wheels and sdists always ship a fresh `mediahive/frontend-build`.
|
||||||
|
|||||||
Reference in New Issue
Block a user