Publish Alpha Build #5
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 generate an ALPHA release distribution and upload it to PyPI | |
name: Publish Alpha Build | |
on: | |
pull_request: | |
types: [closed] | |
branches: | |
- dev | |
paths-ignore: | |
- 'version.py' | |
- 'test/**' | |
- 'examples/**' | |
- '.github/**' | |
- '.gitignore' | |
- 'LICENSE' | |
- 'CHANGELOG.md' | |
- 'MANIFEST.in' | |
- 'README.md' | |
- 'scripts/**' | |
workflow_dispatch: | |
jobs: | |
build_and_publish: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
ref: dev | |
fetch-depth: 0 # to avoid errors pushing refs to the destination repository | |
- name: Setup Python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: 3.8 | |
- name: Install Build Tools | |
run: | | |
python -m pip install build wheel | |
- name: Debug PR Labels | |
run: | | |
echo "Labels: ${{ github.event.pull_request.labels[*].name }}" | |
- name: Determine version bump | |
id: version_bump | |
run: | | |
if [ "${{ github.event_name }}" == "pull_request" ]; then | |
LABELS=$(echo "${{ github.event.pull_request.labels[*].name }}" | tr ' ' '\n') | |
echo "Labels: $LABELS" | |
else | |
echo "Not a pull request, defaulting to alpha." | |
echo "::set-output name=part::alpha" | |
fi | |
MAJOR=0 | |
MINOR=0 | |
BUILD=0 | |
for label in $LABELS; do | |
if [ "$label" == "breaking" ]; then | |
MAJOR=1 | |
elif [ "$label" == "feature" ]; then | |
MINOR=1 | |
elif [ "$label" == "fix" ]; then | |
BUILD=1 | |
fi | |
done | |
if [ $MAJOR -eq 1 ]; then | |
echo "::set-output name=part::major" | |
elif [ $MINOR -eq 1 ]; then | |
echo "::set-output name=part::minor" | |
elif [ $BUILD -eq 1 ]; then | |
echo "::set-output name=part::build" | |
else | |
echo "::set-output name=part::alpha" | |
fi | |
- name: Update version in version.py | |
run: | | |
python scripts/update_version.py ${{ steps.version_bump.outputs.part }} --version-file $GITHUB_WORKSPACE/tutubo/version.py | |
- name: "Generate release changelog" | |
uses: heinrichreimer/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
maxIssues: 50 | |
id: changelog | |
- name: Commit to dev | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: Increment Version | |
branch: dev | |
- name: version | |
run: echo "::set-output name=version::$(python setup.py --version)" | |
id: version | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
tag_name: V${{ steps.version.outputs.version }} | |
release_name: Release ${{ steps.version.outputs.version }} | |
body: | | |
Changes in this Release | |
${{ steps.changelog.outputs.changelog }} | |
draft: false | |
prerelease: true | |
commitish: dev | |
- name: Build Distribution Packages | |
run: | | |
python setup.py sdist bdist_wheel | |
- name: Publish to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
password: ${{secrets.PYPI_TOKEN}} |