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.12" - 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: | WHL=$(ls dist/moma-${{ steps.version.outputs.version }}-*.whl) cp "$WHL" dist/moma-${{ steps.version.outputs.version }}.whl cp "$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