Skip to content

CI: Generate GitHub releases #36

CI: Generate GitHub releases

CI: Generate GitHub releases #36

Workflow file for this run

---
name: PyPI release
# yamllint disable-line rule:truthy
on: push
jobs:
publish:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 30
fetch-tags: true
- name: Configure Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Build package distribution files
run: >-
pipx run tox -e clean,build
- name: Configure TWINE
run: |
echo "TWINE_USERNAME=__token__" >> $GITHUB_ENV
echo "TWINE_PASSWORD=${{ secrets.PYPI_API_TOKEN }}" >> $GITHUB_ENV
- name: Publish to PyPI
run: >-
pipx run tox -e publish -- --repository pypi
- name: Get tag
id: tag
uses: devops-actions/action-get-tag@v1.0.2
- name: Convert tag
run: >-
VER=$(echo "${{ steps.tag.outputs.tag }}" | tr . -)
echo "ANCHOR=${VER}" >> $GITHUB_ENV
- name: Notify mailing list
uses: dawidd6/action-send-mail@v3
with:
server_address: ${{ vars.MAIL_SERVER }}
server_port: ${{ vars.MAIL_SERVER_PORT }}
secure: true
username: ${{ secrets.MAIL_USER }}
password: ${{ secrets.MAIL_PASSWORD }}
subject: lftools ${{ steps.tag.outputs.tag }} released
to: lf-releng@lists.linuxfoundation.org
from: ${{ vars.MAIL_FROM }}
body: |
Hi Everyone,
lftools ${{ steps.tag.outputs.tag }} is released. Thanks to everyone who contributed
to this release. Release notes are avaiable online at:
https://docs.releng.linuxfoundation.org/projects/lftools/en/stable/release-notes.html#${{ env.ANCHOR }}
Cheers,
LF Release Engineering
- name: Generate reno report
run: >-
pipx run tox -e reno -- report \
--version "${{ steps.tag.outputs.tag }}" \
2>/dev/null > reno-notes.md || true
if grep -q 'reno: FAIL' reno-notes.md
then
touch modified-reno-notes.md
else
sed '/^\.pkg.*$/d' reno-notes.md |
sed '/^reno:.*$/d' |
sed '/^\.\. .*$/d' |
sed '$d' |
sed '$d' |
sed '1d' > modified-reno-notes.md
fi
- name: Create Release Notes
run: >-
gh release create ${{ steps.tag.outputs.tag }} --generate-notes \
-F modified-reno-notes.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}