Publish the package to pypi #50
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish the package to pypi | |
on: workflow_dispatch | |
jobs: | |
pypi-publish: | |
name: Upload release to PyPI | |
runs-on: ubuntu-latest | |
environment: | |
name: pypi | |
url: https://pypi.org/p/lazy-github | |
permissions: | |
id-token: write | |
outputs: | |
new-version: ${{ steps.calculate-version.outputs.version }} | |
steps: | |
# Perform a bunch of setup | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
- uses: yezz123/setup-uv@v4 | |
- name: Calculate version | |
id: calculate-version | |
run: | | |
new_version=$(uvx hatch version) | |
echo "version=${new_version}" >> $GITHUB_OUTPUT | |
# Build the distribution | |
- name: Build lazy-github distribution | |
run: uvx hatch build | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
create-tag-and-release: | |
name: Create tag | |
needs: pypi-publish | |
permissions: write-all | |
runs-on: ubuntu-latest | |
steps: | |
- name: create-tag | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
github.rest.git.createRef({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
ref: 'refs/tags/v${{ needs.pypi-publish.outputs.new-version }}', | |
sha: context.sha | |
}) | |
- name: Create release | |
run: | | |
gh release create "v${{ needs.pypi-publish.outputs.new-version }}" \ | |
--title="LazyGithub ${tag#v}" \ | |
--generate-notes | |
notify-discord: | |
name: Notify when this workflow completes (regardless of success or failure) | |
needs: pypi-publish | |
runs-on: ubuntu-latest | |
steps: | |
- uses: nobrayner/discord-webhook@v1 | |
with: | |
title: "Version ${{ needs.pypi-publish.outputs.new-version }} published to PyPi" | |
description: "Check out the new version [here](https://pypi.org/project/lazy-github/${{ needs.pypi-publish.outputs.new-version }}/)" | |
github-token: ${{ secrets.github_token }} | |
discord-webhook: ${{ secrets.DISCORD_WEBHOOK }} |