From 984bce43336f011d7e08f67a06583073fe382913 Mon Sep 17 00:00:00 2001 From: Andrew Grimberg Date: Wed, 12 Apr 2023 10:35:02 -0700 Subject: [PATCH] CI: Add release workflow for tags Issue: RELENG-4563 Signed-off-by: Andrew Grimberg Change-Id: I32708d17966a7782e65bdf66c152e4e9ac89fda2 --- .github/workflows/release.yaml | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..2284b5c8 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,55 @@ +--- +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@v3 + - 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: evops-actions/action-get-tag@1.0.1 + - 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: ${{ variables.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 -- 2.16.6