v3.16.1 Support new Membership API and Webhook #46
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
# This workflow will upload a Python Package using Twine when a release is created | |
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries | |
name: Upload Python Package | |
on: | |
release: | |
types: [published] | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'The version to release' | |
required: true | |
jobs: | |
release-build: | |
runs-on: ubuntu-latest | |
permissions: | |
issues: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install setuptools wheel twine | |
- name: Update version in linebot/__about__.py | |
run: | | |
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
VERSION=${{ github.event.inputs.version }} | |
else | |
VERSION=${{ github.event.release.tag_name }} | |
fi | |
VERSION=${VERSION#v} | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
python tools/update_version.py $VERSION | |
- name: Build | |
run: | | |
python setup.py sdist bdist_wheel | |
- name: upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-dists | |
path: dist/ | |
- name: Create GitHub Issue on Failure | |
if: failure() | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { owner, repo } = context.repo; | |
const version = process.env.VERSION; | |
const issueTitle = `Release job for ${version} failed`; | |
const issueBody = `The release job failed. Please check the [workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for more details.`; | |
const assignees = [context.actor]; | |
await github.rest.issues.create({ | |
owner, | |
repo, | |
title: issueTitle, | |
body: issueBody, | |
assignees | |
}); | |
pypi-publish: | |
runs-on: ubuntu-latest | |
needs: | |
- release-build | |
environment: | |
name: release | |
permissions: | |
id-token: write | |
issues: write | |
steps: | |
- name: Retrieve release distributions | |
uses: actions/download-artifact@v4 | |
with: | |
name: release-dists | |
path: dist/ | |
- name: Publish release distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4 | |
- name: Create GitHub Issue on Failure | |
if: failure() | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { owner, repo } = context.repo; | |
const issueTitle = `Release job for failed`; | |
const issueBody = `The release job failed. Please check the [workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for more details.`; | |
const assignees = [context.actor]; | |
await github.rest.issues.create({ | |
owner, | |
repo, | |
title: issueTitle, | |
body: issueBody, | |
assignees | |
}); |