feat: Add CI and Release workflows for automated testing and publishing; update documentation in AGENTS.md, CHANGELOG.md, DEVELOP.md, and INSTALL.md

This commit is contained in:
sha
2026-04-12 11:52:42 +03:00
parent 7605a7d2fc
commit 1b50d15eea
6 changed files with 182 additions and 18 deletions
+80
View File
@@ -0,0 +1,80 @@
name: Release
on:
push:
tags:
- "v*.*.*"
permissions:
contents: write
jobs:
build-and-release:
name: Build and publish release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: "latest"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install system dependencies
run: sudo apt-get install -y libmediainfo-dev
- name: Install dependencies
run: uv sync --extra dev
- name: Run tests
run: uv run pytest
- name: Build distribution
run: uv build
- name: Extract version from tag
id: version
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Create short-name and latest aliases
run: |
cp dist/moma-${{ steps.version.outputs.version }}-py3-none-any.whl dist/moma-${{ steps.version.outputs.version }}.whl
cp dist/moma-${{ steps.version.outputs.version }}-py3-none-any.whl dist/moma-latest.whl
cp dist/moma-${{ steps.version.outputs.version }}.tar.gz dist/moma-latest.tar.gz
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
name: "moma v${{ steps.version.outputs.version }}"
tag_name: ${{ github.ref_name }}
body: |
## moma v${{ steps.version.outputs.version }}
See [CHANGELOG.md](https://github.com/shadoll/moma/blob/main/CHANGELOG.md) for details.
### Install
```bash
# With uv — always latest
uv tool install https://github.com/shadoll/moma/releases/latest/download/moma-latest.whl
# With uv — specific version
uv tool install https://github.com/shadoll/moma/releases/download/${{ github.ref_name }}/moma-${{ steps.version.outputs.version }}.whl
# With pip
pip install https://github.com/shadoll/moma/releases/download/${{ github.ref_name }}/moma-${{ steps.version.outputs.version }}.whl
```
files: |
dist/moma-${{ steps.version.outputs.version }}.whl
dist/moma-${{ steps.version.outputs.version }}.tar.gz
dist/moma-latest.whl
dist/moma-latest.tar.gz
draft: false
prerelease: false