1
0
Fork 0
mirror of https://github.com/qurator-spk/dinglehopper.git synced 2025-06-08 19:30:01 +02:00

🚧 GitHub Actions: Add release workflow

This commit is contained in:
Mike Gerber 2023-08-04 16:10:54 +02:00
parent 1dad18909c
commit caef84cebb
2 changed files with 72 additions and 0 deletions

14
.github/workflows/release-check-version-tag vendored Executable file
View file

@ -0,0 +1,14 @@
#!/bin/bash
# We call setuptools.setup() here as we may rely on setuptools to interpret
# a dynamic version field. (Reading pyproject.toml is not enough in that case.)
expected_git_tag="v$(python -c 'from setuptools import setup; setup()' --version)"
actual_git_tag="$(git describe --tags)"
if [[ "$expected_git_tag" == "$actual_git_tag" ]]; then
echo "OK: Python package version $expected_git_tag matches git tag"
exit 0
else
echo "ERROR: Python package version $expected_git_tag does NOT match git tag $actual_git_tag"
exit 1
fi

58
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,58 @@
name: release
on:
push:
tags:
- "v*.*.*"
env:
PYPI_URL: https://pypi.org/p/dinglehopper
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check git tag vs package version
run: python3 -m pip install --upgrade setuptools && .github/workflows/release-check-version-tag
- name: Build package
run: python3 -m pip install --upgrade build && python3 -m build
- name: Test
run: python3 -m pip install -r requirements-dev.txt && pytest
- name: Upload dist
uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
github-release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download dist
uses: actions/download-artifact@v3
with:
name: dist
path: dist/
- name: Create release on GitHub
uses: softprops/action-gh-release@v1
with:
files: dist/*
pypi-publish:
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
url: ${{ env.PYPI_URL }}
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- name: Download dist
uses: actions/download-artifact@v3
with:
name: dist
path: dist/
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1