From 9de43594acb659c5d66c63af984c813634da44b8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 13:02:00 +0200 Subject: [PATCH] chore(release): 0.2.0 (#96) * fix: dispatch release checks on release branch (#93) * fix: exit number rain loop when scene completes - Add !numberSceneDoneRequested check to while condition in stepNumberRain() - Add !numberSceneDoneRequested check to guard in stepNumberRain() - Prevents infinite loop when scene signals completion via flag - Allows phase-advance barrier to resolve and transition to rain scene * fix(ci): dispatch release checks on release branch - Run validation workflows on the release branch SHA - Keep commitlint and branch policy working for manual dispatch - Remove inline release checks from the release workflow * fix(ci): publish release PR required checks (#95) - publish required statuses on the release commit SHA - run release validation inline instead of workflow dispatch - restore standalone workflows to normal pull_request triggers * chore(release): 0.2.0 - bump VERSION to 0.2.0 - update CHANGELOG.md --------- Co-authored-by: Patrick Schaper Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 103 ++++++++++++++++++++++++++++++++-- CHANGELOG.md | 25 +++++++++ VERSION | 2 +- 3 files changed, 124 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fd839c4..0264fba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,6 +24,7 @@ on: permissions: contents: write pull-requests: write + statuses: write concurrency: group: release-${{ github.event_name }}-${{ github.ref_name }} @@ -36,6 +37,7 @@ jobs: runs-on: macos-15 outputs: branch: ${{ steps.version.outputs.branch }} + sha: ${{ steps.release_commit.outputs.sha }} env: GH_TOKEN: ${{ github.token }} @@ -185,6 +187,7 @@ jobs: mv "${tmp}" CHANGELOG.md - name: Commit and push release changes + id: release_commit shell: bash run: | set -euo pipefail @@ -195,6 +198,7 @@ jobs: printf '%s\n' "${version}" > VERSION git add VERSION CHANGELOG.md git commit -m "chore(release): ${version}" -m "- bump VERSION to ${version}" -m "- update CHANGELOG.md" + echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" git push --force-with-lease --set-upstream origin "${branch}" - name: Open release pull request @@ -234,15 +238,13 @@ jobs: printf 'Merge that pull request into main to trigger the publish job.\n' } >> "$GITHUB_STEP_SUMMARY" - # GITHUB_TOKEN pushes don't trigger other workflows, so the required - # checks ("Run tests", "Lint commit messages") would stay pending on the - # release PR. These jobs run the same checks inline with matching names - # so branch protection on main is satisfied. release-tests: needs: prepare if: github.event_name == 'workflow_dispatch' name: Run tests runs-on: macos-latest + env: + GH_TOKEN: ${{ github.token }} steps: - name: Check out release branch uses: actions/checkout@v5 @@ -250,13 +252,38 @@ jobs: ref: ${{ needs.prepare.outputs.branch }} - name: Run tests + id: tests + shell: bash run: ./tests.sh + - name: Publish test status + if: always() + shell: bash + run: | + set -euo pipefail + + state="success" + description="Test suite passed" + if [[ "${{ steps.tests.outcome }}" != "success" ]]; then + state="failure" + description="Test suite failed" + fi + + gh api \ + --method POST \ + "repos/${GITHUB_REPOSITORY}/statuses/${{ needs.prepare.outputs.sha }}" \ + -f state="${state}" \ + -f context='Run tests' \ + -f description="${description}" \ + -f target_url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" + release-lint: needs: prepare if: github.event_name == 'workflow_dispatch' name: Lint commit messages runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ github.token }} steps: - name: Check out release branch uses: actions/checkout@v5 @@ -264,10 +291,76 @@ jobs: ref: ${{ needs.prepare.outputs.branch }} fetch-depth: 0 - - name: Lint commits + - name: Lint release commit + id: lint uses: wagoid/commitlint-github-action@v6 with: configFile: .commitlintrc.json + commitDepth: 1 + + - name: Publish lint status + if: always() + shell: bash + run: | + set -euo pipefail + + state="success" + description="Commit messages passed" + if [[ "${{ steps.lint.outcome }}" != "success" ]]; then + state="failure" + description="Commit message lint failed" + fi + + gh api \ + --method POST \ + "repos/${GITHUB_REPOSITORY}/statuses/${{ needs.prepare.outputs.sha }}" \ + -f state="${state}" \ + -f context='Lint commit messages' \ + -f description="${description}" \ + -f target_url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" + + release-branch-policy: + needs: prepare + if: github.event_name == 'workflow_dispatch' + name: Check source branch + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ github.token }} + steps: + - name: Validate release source branch + id: branch_policy + shell: bash + run: | + set -euo pipefail + + branch="${{ needs.prepare.outputs.branch }}" + echo "Source branch: ${branch}" + + if [[ "${branch}" != release/v* ]]; then + echo "Expected release/v* branch, got ${branch}." >&2 + exit 1 + fi + + - name: Publish branch policy status + if: always() + shell: bash + run: | + set -euo pipefail + + state="success" + description="Release branch allowed" + if [[ "${{ steps.branch_policy.outcome }}" != "success" ]]; then + state="failure" + description="Release branch policy failed" + fi + + gh api \ + --method POST \ + "repos/${GITHUB_REPOSITORY}/statuses/${{ needs.prepare.outputs.sha }}" \ + -f state="${state}" \ + -f context='Check source branch' \ + -f description="${description}" \ + -f target_url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" publish: if: github.event_name == 'push' diff --git a/CHANGELOG.md b/CHANGELOG.md index 81c384d..d35be87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.2.0] - 2026-06-10 + +### Features + +- multi-screen sync coordinator (#85) +- add two darker brightness steps to rain palette (#71) +- group options sheet into sections (#69) + +### Bug Fixes + +- publish release PR required checks (#95) +- dispatch release checks on release branch (#93) +- exit number rain loop when scene completes (#89) +- recreate release PR instead of reusing (#88) +- run required checks inline in release workflow (#87) +- trigger checks on release branch push (#86) +- restrict release workflow dispatch to development branch (#83) +- always regenerate changelog on release reruns (#82) +- allow release workflow dispatch from development branch (#81) +- source release changelog from development branch (#80) +- derive current version from latest git tag in release workflow (#74) +- auto-merge back-merge PR and sync VERSION after release (#73) +- apply typing speed to all intro scenes (#70) + ## [0.1.1] - 2026-05-20 ### Features diff --git a/VERSION b/VERSION index 17e51c3..0ea3a94 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.1 +0.2.0