mirror of
https://github.com/beetbox/beets.git
synced 2026-01-15 04:34:23 +01:00
Update release workflow with poetry (#5308)
This commit is contained in:
commit
bbb9aad6fa
3 changed files with 83 additions and 63 deletions
136
.github/workflows/make_release.yaml
vendored
136
.github/workflows/make_release.yaml
vendored
|
|
@ -7,87 +7,68 @@ on:
|
|||
description: 'Version of the new release, just as a number with no prepended "v"'
|
||||
required: true
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: 3.8
|
||||
NEW_VERSION: ${{ inputs.version }}
|
||||
|
||||
jobs:
|
||||
increment_version:
|
||||
increment-version:
|
||||
name: Bump project version and commit it
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
- name: Install Python tools
|
||||
uses: BrandonLWhite/pipx-install-action@v0.1.1
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.9"
|
||||
- name: Run version script
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
cache: poetry
|
||||
|
||||
- name: Install dependencies
|
||||
run: poetry install --only=release
|
||||
|
||||
- name: Bump project version
|
||||
id: script
|
||||
run: |
|
||||
python extra/release.py bump "${{ inputs.version }}"
|
||||
run: poe bump "${{ env.NEW_VERSION }}"
|
||||
|
||||
- uses: EndBug/add-and-commit@v9
|
||||
name: Commit the changes
|
||||
with:
|
||||
message: "Increment version numbers to ${{ inputs.version }}"
|
||||
message: "Increment version to ${{ env.NEW_VERSION }}"
|
||||
|
||||
build:
|
||||
name: Get changelog and build the distribution package
|
||||
runs-on: ubuntu-latest
|
||||
needs: increment_version
|
||||
needs: increment-version
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Python tools
|
||||
uses: BrandonLWhite/pipx-install-action@v0.1.1
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: master
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.9"
|
||||
- run: pip install build wheel sphinx
|
||||
- name: Build a binary wheel and a source tarball
|
||||
env:
|
||||
TZ: UTC
|
||||
run: python3 -m build
|
||||
- name: Store the distribution packages
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
cache: poetry
|
||||
|
||||
- name: Install dependencies
|
||||
run: poetry install --only=release
|
||||
|
||||
make_github_release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install pandoc
|
||||
run: sudo apt update && sudo apt install pandoc -y
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.9"
|
||||
|
||||
- name: Obtain the changelog
|
||||
run: echo CHANGELOG="$(python ./extra/release.py changelog)" >> $GITHUB_ENV
|
||||
- name: Bump version and push tag
|
||||
id: tag_version
|
||||
uses: mathieudutour/github-tag-action@v6.1
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
custom_tag: ${{ inputs.version }}
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@v3
|
||||
run: echo "changelog=$(poe changelog)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build a binary wheel and a source tarball
|
||||
run: poetry build
|
||||
|
||||
- name: Store the distribution packages
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
- name: Create a GitHub release
|
||||
id: make_release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
tag: ${{ steps.tag_version.outputs.new_tag }}
|
||||
name: Release ${{ steps.tag_version.outputs.new_tag }}
|
||||
body: ${{ env.CHANGELOG }}
|
||||
artifacts: dist/*
|
||||
- name: Send release toot to Fosstodon
|
||||
uses: cbrgm/mastodon-github-action@v2
|
||||
with:
|
||||
access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
|
||||
url: ${{ secrets.MASTODON_URL }}
|
||||
message: "Version ${{ steps.tag_version.outputs.new_tag }} of beets has been released! Check out all of the new changes at ${{ steps.create_release.outputs.html_url }}"
|
||||
|
||||
publish_to_pypi:
|
||||
publish-to-pypi:
|
||||
name: Publish distribution 📦 to PyPI
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
environment:
|
||||
|
|
@ -97,9 +78,46 @@ jobs:
|
|||
id-token: write
|
||||
steps:
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
- name: Publish distribution 📦 to PyPI
|
||||
uses: pypa/gh-action-pypi-publish@release/v1
|
||||
|
||||
make-github-release:
|
||||
name: Create GitHub release
|
||||
runs-on: ubuntu-latest
|
||||
needs: publish-to-pypi
|
||||
env:
|
||||
CHANGELOG: ${{ needs.build.outputs.changelog }}
|
||||
steps:
|
||||
- name: Tag the commit
|
||||
id: tag_version
|
||||
uses: mathieudutour/github-tag-action@v6
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
custom_tag: ${{ env.NEW_VERSION }}
|
||||
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
|
||||
- name: Create a GitHub release
|
||||
id: make_release
|
||||
uses: ncipollo/release-action@v1
|
||||
env:
|
||||
NEW_TAG: ${{ steps.tag_version.outputs.new_tag }}
|
||||
with:
|
||||
tag: ${{ env.NEW_TAG }}
|
||||
name: Release ${{ env.NEW_TAG }}
|
||||
body: ${{ env.CHANGELOG }}
|
||||
artifacts: dist/*
|
||||
- name: Send release toot to Fosstodon
|
||||
uses: cbrgm/mastodon-github-action@v2
|
||||
with:
|
||||
access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
|
||||
url: ${{ secrets.MASTODON_URL }}
|
||||
message: "Version ${{ steps.tag_version.outputs.new_tag }} of beets has been released! Check out all of the new changes at ${{ steps.create_release.outputs.html_url }}"
|
||||
|
|
|
|||
2
poetry.lock
generated
2
poetry.lock
generated
|
|
@ -2752,4 +2752,4 @@ web = ["flask", "flask-cors"]
|
|||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.8,<4"
|
||||
content-hash = "2ff0a67fbc8099eed500963f3338cf00d687abee9af56aac744a169f8f22d50d"
|
||||
content-hash = "4ae4e4157dd4a0c7951ba1f642c8dc36ae8ca264789b2a224ecaaf5e3a2f289a"
|
||||
|
|
|
|||
|
|
@ -34,16 +34,13 @@ Changelog = "https://github.com/beetbox/beets/blob/master/docs/changelog.rst"
|
|||
[tool.poetry.dependencies]
|
||||
python = ">=3.8,<4"
|
||||
|
||||
click = ">=8.1.7"
|
||||
colorama = { version = "*", markers = "sys_platform == 'win32'" }
|
||||
confuse = ">=1.5.0"
|
||||
jellyfish = "*"
|
||||
mediafile = ">=0.12.0"
|
||||
munkres = ">=1.0.0"
|
||||
musicbrainzngs = ">=0.4"
|
||||
packaging = ">=24.0"
|
||||
pyyaml = "*"
|
||||
tomli = ">=2.0.1"
|
||||
typing_extensions = "*"
|
||||
unidecode = ">=1.3.6"
|
||||
beautifulsoup4 = { version = "*", optional = true }
|
||||
|
|
@ -106,6 +103,11 @@ types-urllib3 = "*"
|
|||
pydata-sphinx-theme = "*"
|
||||
sphinx = "*"
|
||||
|
||||
[tool.poetry.group.release.dependencies]
|
||||
click = ">=8.1.7"
|
||||
packaging = ">=24.0"
|
||||
tomli = ">=2.0.1"
|
||||
|
||||
[tool.poetry.extras]
|
||||
# inline comments note required external / non-python dependencies
|
||||
absubmit = ["requests"] # extractor binary from https://acousticbrainz.org/download
|
||||
|
|
|
|||
Loading…
Reference in a new issue