Skip to content

Merge pull request #66 from tntech-ngin/fix/data-deletion #62

Merge pull request #66 from tntech-ngin/fix/data-deletion

Merge pull request #66 from tntech-ngin/fix/data-deletion #62

name: Update Version and Publish Package
on:
push:
branches:
- main
jobs:
update-version:
name: Update Version
if: "contains(github.event.head_commit.message, 'Bump version')"
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Determine version bump
id: version
run: |
bump_message="version to"
# Get the commit messages for the last 10 commits
commit_messages=$(git log -n 10 --pretty=format:%B)
echo "Commit messages: $commit_messages"
new_version=""
# Extract version from commit messages
new_version=$(echo "$commit_messages" | grep -oP "$bump_message \K[0-9]+\.[0-9]+\.[0-9]+" | sort -V | tail -n 1)
if [[ $new_version ]]; then
echo "Version bump detected: $new_version"
echo "::set-output name=version::$new_version"
else
echo "No version bump found in the commit messages."
exit 0
fi
- name: Bump version
run: |
version=${{ steps.version.outputs.version }}
if [ -z "$version" ]; then
echo "No version to bump."
exit 1
fi
# Ensure docs/version.py exists
if [ ! -f docs/version.py ]; then
echo "__version__ = \"$version\"" > docs/version.py
else
echo "Updating to version $version"
fi
if git diff --quiet; then
echo "No changes to commit."
exit 0
fi
build:
name: Build distribution 📦
needs: update-version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install pypa/build
run: python3 -m pip install build --user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/
publish-to-pypi:
name: Publish Python 🐍 distribution 📦 to PyPI
needs: build
runs-on: ubuntu-latest
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
github-release:
name: Sign the Python 🐍 distribution 📦 with Sigstore and upload them to GitHub Release
needs: publish-to-pypi
runs-on: ubuntu-latest
permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore
steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Sign the dists with Sigstore
uses: sigstore/[email protected]
with:
inputs: ./dist/*.tar.gz ./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: gh release create '${{ github.ref_name }}' --repo '${{ github.repository }}' --notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: gh release upload '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}'
publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
needs:
- build
runs-on: ubuntu-latest
environment:
name: testpypi
url: https://test.pypi.org/p/ndn-hydra-repo
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/