Skip to content

fix: increase playlist variation #19

fix: increase playlist variation

fix: increase playlist variation #19

Workflow file for this run

name: release
# Auto-tag and release on every push to main, with bump level derived
# from the commit subject's Conventional Commits prefix:
#
# feat!: ... (or feat(scope)!:) -> major (1.2.3 -> 2.0.0)
# feat: ... (or feat(scope):) -> minor (1.2.3 -> 1.3.0)
# docs: ... -> skipped (no release)
# chore: ... -> skipped
# ci: ... -> skipped
# fix:, refactor:, perf:, test:, style:, build:, anything else -> patch
#
# To ship a major release manually, tag it directly:
# git tag v2.0.0 && git push origin v2.0.0
on:
push:
branches: [main]
concurrency:
group: release
cancel-in-progress: false
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Decide bump
id: decide
run: |
subject=$(git log -1 --pretty=%s)
echo "subject: $subject"
# Conventional prefix: type, optional (scope), optional !, then ":"
if echo "$subject" | grep -qE '^feat(\([^)]*\))?!:'; then
level=major
elif echo "$subject" | grep -qE '^feat(\([^)]*\))?:'; then
level=minor
elif echo "$subject" | grep -qE '^(docs|chore|ci)(\([^)]*\))?:'; then
echo "skip=true" >> "$GITHUB_OUTPUT"
echo "Skipping release for docs/chore/ci commit."
exit 0
else
level=patch
fi
echo "skip=false" >> "$GITHUB_OUTPUT"
echo "level=$level" >> "$GITHUB_OUTPUT"
- name: Compute next version
if: steps.decide.outputs.skip == 'false'
id: bump
env:
LEVEL: ${{ steps.decide.outputs.level }}
run: |
set -euo pipefail
latest=$(git tag --list 'v[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -n1)
latest=${latest:-v0.0.0}
IFS='.' read -r major minor patch <<< "${latest#v}"
case "$LEVEL" in
major) major=$((major + 1)); minor=0; patch=0 ;;
minor) minor=$((minor + 1)); patch=0 ;;
patch) patch=$((patch + 1)) ;;
esac
new="v${major}.${minor}.${patch}"
echo "new=$new" >> "$GITHUB_OUTPUT"
echo "Bumping ${latest} -> ${new} (level=${LEVEL})"
- name: Push tag
if: steps.decide.outputs.skip == 'false'
env:
NEW_TAG: ${{ steps.bump.outputs.new }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git tag "$NEW_TAG"
git push origin "$NEW_TAG"
- name: Create GitHub release
if: steps.decide.outputs.skip == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.bump.outputs.new }}
name: ${{ steps.bump.outputs.new }}
generate_release_notes: true