Files
flow/.github/workflows/release.yml
2026-05-14 16:19:15 +03:00

53 lines
1.3 KiB
YAML

name: release
on:
workflow_dispatch:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
package:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
enable-cache: true
- name: Build release package
run: make release-package
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: flow-python-release
path: |
dist/flow-*-python.tar.gz
dist/flow-*-python.tar.gz.sha256
if-no-files-found: error
- name: Publish release assets
if: startsWith(github.ref, 'refs/tags/')
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
TAG="${GITHUB_REF_NAME}"
if gh release view "$TAG" >/dev/null 2>&1; then
gh release upload "$TAG" dist/flow-*-python.tar.gz dist/flow-*-python.tar.gz.sha256 --clobber
else
gh release create "$TAG" dist/flow-*-python.tar.gz dist/flow-*-python.tar.gz.sha256 --title "$TAG" --generate-notes
fi