Files
mediahive/.gitea/workflows/release.yaml
T
LeoVasanko 67489e05bc
release / gui-build (windows, cmd) (push) Failing after 0s
release / gui-build (macos, bash) (push) Successful in 1m0s
release / gui-build (linux, bash) (push) Successful in 1m2s
Use cmd shell for Windows steps; powershell is blocked by execution policy under SYSTEM
2026-09-22 04:26:30 +00:00

69 lines
2.2 KiB
YAML

name: release
on:
push:
tags:
- "v*"
jobs:
gui-build:
strategy:
fail-fast: false
matrix:
include:
- os: macos
shell: bash
- os: windows
shell: cmd
- os: linux
shell: bash
runs-on: ${{ matrix.os }}
steps:
# Plain git clone instead of actions/checkout (a JS action that would
# require node on the host). Full history so setuptools_scm sees tags.
# ${{ }} expressions are substituted by the runner, so both shells work.
# Windows uses cmd: bash resolves to WSL (refuses SYSTEM accounts) and
# powershell hits the script execution policy under SYSTEM.
- name: Checkout
shell: ${{ matrix.shell }}
run: |
git clone "${{ gitea.server_url }}/${{ gitea.repository }}.git" .
git checkout -f "${{ gitea.sha }}"
# The sdist build compiles the Vue frontend and needs node/npm.
# 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 }}
run: uv run --extra gui scripts/guibuild.py
# Every platform converges on the one release for the tag; release.py
# reuses an existing release and skips already-uploaded assets.
# Only the linux job publishes the wheel/sdist (identical across platforms).
- name: Create Gitea release and upload assets
if: matrix.os == 'linux'
shell: ${{ matrix.shell }}
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: uv run scripts/release.py
- name: Attach platform artifact to the Gitea release
if: matrix.os != 'linux'
shell: ${{ matrix.shell }}
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: uv run scripts/release.py --no-dist