ci(changelog): Added changelog script. #4
Workflow file for this run
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: Release and Publish | |
on: | |
push: | |
tags: | |
- "*" | |
permissions: | |
contents: write | |
id-token: write | |
jobs: | |
create_release: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Fetch all history for tags | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install Poetry | |
run: | | |
curl -sSL https://install.python-poetry.org | python3 - | |
- name: Install dependencies | |
run: | | |
poetry install --only ci | |
- name: Generate changelog | |
run: | | |
poetry run git-cliff -o ./CHANGELOG.md | |
- name: Get the current tag | |
id: get_tag | |
run: echo "tag=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV | |
- name: Extract changelog content for the current tag | |
run: | | |
poetry run python ./ci/changelog.py ${{ env.tag }} | |
env: | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
- name: Commit and push changelog | |
run: | | |
git config --global user.name 'GitHub Actions' | |
git config --global user.email 'actions@github.com' | |
git checkout main | |
git pull origin main | |
git add CHANGELOG.md | |
git commit -m "chore(changelog): update changelog with ${{ env.tag }}" | |
git push origin main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create GitHub Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
body_path: ./RELEASE_NOTES.md | |
deploy_to_pypi: | |
runs-on: ubuntu-latest | |
needs: create_release | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install Poetry | |
run: | | |
curl -sSL https://install.python-poetry.org | python3 - | |
- name: Install dependencies | |
run: | | |
poetry install --only main | |
- name: Build package | |
run: poetry build | |
- name: Publish package | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
packages-dir: dist |