Build the GUI app on macos/windows/linux host runners on v* tag pushes. All platform jobs converge on one Gitea release; release.py now reuses an existing release, skips duplicate assets, and supports --no-dist so only the linux job uploads the wheel/sdist.
38 lines
1.0 KiB
YAML
38 lines
1.0 KiB
YAML
name: release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
gui-build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [macos, windows, linux]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
# setuptools_scm needs full history/tags to compute the version
|
|
fetch-depth: 0
|
|
|
|
- name: Build GUI app zip and dist packages
|
|
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'
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
|
run: uv run scripts/release.py
|
|
|
|
- name: Attach platform zip to the Gitea release
|
|
if: matrix.os != 'linux'
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
|
run: uv run scripts/release.py --no-dist
|