Files
Hendrik Hogertz ab399e740a
All checks were successful
Build and Publish Release / build-and-publish (release) Successful in 49s
ci: 👷 Add deployment workflow
2025-11-24 10:02:56 +01:00

71 lines
2.2 KiB
YAML

name: Build and Publish Release
on:
release:
types: [published]
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: https://git.hogertz.eu/actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
- name: Set up Python
uses: https://git.hogertz.eu/actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
with:
python-version: '3.13'
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Extract version from release tag
id: get_version
run: |
# Remove 'v' prefix if present (e.g., v1.0.0 -> 1.0.0)
VERSION=${GITHUB_REF#refs/tags/}
VERSION=${VERSION#v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"
- name: Update version in pyproject.toml
run: |
VERSION="${{ steps.get_version.outputs.version }}"
sed -i "s/^version = .*/version = \"$VERSION\"/" pyproject.toml
echo "Updated pyproject.toml to version $VERSION"
cat pyproject.toml | grep "^version"
- name: Install build dependencies
run: |
uv sync --extra build
- name: Build package
run: |
uv run python -m build
- name: Create .pypirc
run: |
cat > ~/.pypirc << EOF
[distutils]
index-servers = gitea
[gitea]
repository = https://git.hogertz.eu/api/packages/hendrik-hog/pypi
username = ${{ secrets.USERNAME }}
password = ${{ secrets.PAT }}
EOF
chmod 600 ~/.pypirc
- name: Publish to Gitea PyPI
run: |
uv run python -m twine upload --repository gitea dist/*
- name: Commit version update
run: |
git config --local user.email "action@gitea.local"
git config --local user.name "Gitea Actions"
git add pyproject.toml
git diff --staged --quiet || git commit -m "chore: bump version to ${{ steps.get_version.outputs.version }}"
git push origin HEAD:main || echo "No changes to push or push failed"