Skip to content

Commit

Permalink
switch back to github release drafter
Browse files Browse the repository at this point in the history
  • Loading branch information
marcelveldt committed Dec 23, 2024
1 parent 92bb780 commit c3b89d6
Show file tree
Hide file tree
Showing 4 changed files with 162 additions and 92 deletions.
23 changes: 23 additions & 0 deletions .github/pr-labels.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: PR Labels

# yamllint disable-line rule:truthy
on:
pull_request:
types:
- synchronize
- labeled
- unlabeled
branches:
- main

jobs:
pr_labels:
name: Verify
runs-on: ubuntu-latest
steps:
- name: 🏷 Verify PR has a valid label
uses: ludeeus/[email protected]
with:
labels: >-
breaking-change, bugfix, refactor, new-feature, maintenance, ci, dependencies, documentation, enhancement
42 changes: 42 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name-template: "$RESOLVED_VERSION"
tag-template: "$RESOLVED_VERSION"
change-template: "- #$NUMBER - $TITLE (@$AUTHOR)"
categories:
- title: "⚠ Breaking Changes"
labels:
- "breaking-change"

- title: "🐛 Bugfixes"
labels:
- "bugfix"

- title: "🚀 Features"
labels:
- "feature"
- "enhancement"
- "new-feature"

- title: "🧰 Maintenance"
labels:
- "ci"
- "documentation"
- "maintenance"

- title: "⬆️ Dependencies"
collapse-after: 1
labels:
- "dependencies"

template: |
## What’s Changed
$CHANGES
version-resolver:
major:
labels:
- "breaking-change"
minor:
labels:
- "new-feature"
default: patch
97 changes: 5 additions & 92 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,98 +5,11 @@ on:
branches:
- main

permissions:
contents: write
pull-requests: write

jobs:
release-please:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.release.outputs.tag_name }}
release_created: ${{ steps.release.outputs.release_created }}
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
# this assumes that you have created a personal access token
# (PAT) and configured it as a GitHub action secret named
# `MY_RELEASE_PLEASE_TOKEN` (this secret name is not important).
token: ${{ secrets.GITHUB_TOKEN }}
# this is a built-in strategy in release-please, see "Action Inputs"
# for more options
release-type: simple

build-release-artifact:
name: Build Release Artifact
needs: release-please
if: ${{ needs.release-please.outputs.release_created }}
update_release_draft:
runs-on: ubuntu-latest
env:
version: ${{ needs.release-please.outputs.version }}
PYTHON_VERSION: "3.10"
NODE_VERSION: "18.x"
NODE_OPTIONS: --max_old_space_size=6144
steps:
- name: Checkout the repository
uses: actions/checkout@v4

- name: Get tag
id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT

- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn

- name: Install dependencies
run: |
yarn install
python3 -m pip install build tomli tomli-w
- name: Set Python project version from tag
shell: python
run: |-
import tomli
import tomli_w
with open("pyproject.toml", "rb") as f:
pyproject = tomli.load(f)
pyproject["project"]["version"] = "${{ env.version }}"
with open("pyproject.toml", "wb") as f:
tomli_w.dump(pyproject, f)
- name: Build and release package
run: |
yarn build
rm -rf dist music_assistant_frontend.egg-info
python3 -m build
- name: Publish release to PyPI
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}

- name: Upload release assets
uses: softprops/[email protected]
with:
tag_name: ${{ env.version }}
files: |
dist/*.whl
dist/*.tar.gz
- name: Create Server repo PR
uses: music-assistant/frontend-release-pr-action@main
with:
github_token: ${{ secrets.PRIVILEGED_GITHUB_TOKEN }}
new_release_version: ${{ env.version }}
# Drafts your next Release notes as Pull Requests are merged into "main"
- uses: release-drafter/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
92 changes: 92 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Publish releases

on:
release:
types: [published]

env:
PYTHON_VERSION: "3.12"
NODE_VERSION: "18.x"
NODE_OPTIONS: --max_old_space_size=6144

jobs:
build-artifact:
name: Builds precompiled version of the frontend and release as pypi package
runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
- name: Get tag
id: vars
run: >-
echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- name: Validate version number
run: >-
if [[ "${{ github.event.release.prerelease }}" == "true" ]]; then
if ! [[ "${{ steps.vars.outputs.tag }}" =~ "b" || "${{ steps.vars.outputs.tag }}" =~ "rc" ]]; then
echo "Pre-release: Tag is missing beta suffix (${{ steps.vars.outputs.tag }})"
exit 1
fi
else
if [[ "${{ steps.vars.outputs.tag }}" =~ "b" || "${{ steps.vars.outputs.tag }}" =~ "rc" ]]; then
echo "Release: Tag must not have a beta (or rc) suffix (${{ steps.vars.outputs.tag }})"
exit 1
fi
fi
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/[email protected]
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install build
run: >-
pip install build tomli tomli-w
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Install dependencies
run: |
yarn install
python3 -m pip install build tomli tomli-w
- name: Set Python project version from tag
shell: python
run: |-
import tomli
import tomli_w
with open("pyproject.toml", "rb") as f:
pyproject = tomli.load(f)
pyproject["project"]["version"] = "${{ steps.vars.outputs.tag }}"
with open("pyproject.toml", "wb") as f:
tomli_w.dump(pyproject, f)
- name: Build and release package
run: |
yarn build
rm -rf dist music_assistant_frontend.egg-info
python3 -m build
- name: Publish release to PyPI
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}

- name: Upload release assets
uses: softprops/[email protected]
with:
tag_name: ${{ steps.vars.outputs.tag }}
files: |
dist/*.whl
dist/*.tar.gz
- name: Create Server repo PR
uses: music-assistant/frontend-release-pr-action@main
with:
github_token: ${{ secrets.PRIVILEGED_GITHUB_TOKEN }}
new_release_version: ${{ steps.vars.outputs.tag }}

0 comments on commit c3b89d6

Please sign in to comment.