Skip to content

release

release #267

Workflow file for this run

name: release
"on":
workflow_run:
workflows: [ci]
types: [completed]
branches: [main]
workflow_dispatch:
permissions:
contents: write
jobs:
release:
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
runs-on: blacksmith-4vcpu-ubuntu-2404
concurrency: release
outputs:
released: ${{ steps.release.outputs.released }}
version: ${{ steps.release.outputs.version }}
tag: ${{ steps.release.outputs.tag }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: main
fetch-depth: 0
fetch-tags: true
- name: Setup uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
python-version: "3.14"
enable-cache: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: uv sync --group dev
- name: Semantic Release
id: release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set +e
uv run semantic-release --strict version --changelog --push --tag --vcs-release
exit_code=$?
set -e
if [ $exit_code -eq 0 ]; then
echo "released=true" >> "$GITHUB_OUTPUT"
tag=$(git describe --tags --abbrev=0)
echo "tag=$tag" >> "$GITHUB_OUTPUT"
echo "version=${tag#v}" >> "$GITHUB_OUTPUT"
elif [ $exit_code -eq 2 ]; then
echo "No release needed"
echo "released=false" >> "$GITHUB_OUTPUT"
else
echo "Semantic release failed with exit code $exit_code"
exit $exit_code
fi