Skip to content

Release automation: publish on merge to main via GitHub App - #9

Merged
SimonDarksideJ merged 5 commits into
developmentfrom
feature/release-automation
Sep 4, 2026
Merged

Release automation: publish on merge to main via GitHub App#9
SimonDarksideJ merged 5 commits into
developmentfrom
feature/release-automation

Conversation

@SimonDarksideJ

@SimonDarksideJ SimonDarksideJ commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the release automation for V1 and later releases, using the ui-extensions-bot GitHub App instead of a personal access token.

What runs when

  • Pull request into development (unchanged): development-buildandtestupmrelease.yml builds the package on Windows, macOS and Ubuntu across Unity 6000.0 to 6000.7. It only tests. The Ubuntu build targets were commented out and every Ubuntu leg failed with a missing Unity Hub error, so they are enabled again.
  • Pull request into main opened: release-preflight.yml checks the App can mint a token with push access, reports the version the merge will tag, and fails early if that tag already exists. It publishes nothing.
  • Pull request into main merged: main-publish.yml bumps package.json, commits, tags v<version>, merges main back into development, and moves development to the next pre-release (for example 1.0.1-pre.1).

Release type from the PR title

PR title contains Result on 1.0.0-pre.1
nothing special 1.0.0 (patch release: strip the pre-release suffix, or bump patch if there is none)
minor-release 1.1.0
major-release 2.0.0
no-ver tag the version already in package.json, no bump

Differences from the sister repo's workflows

  • Token comes from actions/create-github-app-token using the org secrets RELEASE_APP_CLIENT_ID and RELEASE_APP_PRIVATE_KEY. Commits and tags are attributed to ui-extensions-bot[bot]. The Validate GIT_PAT steps are gone.
  • The tag step tags HEAD. The sister's release branch used a bash-style ${GITHUB_SHA} inside a PowerShell step, which is empty and made every tag push fail.
  • The tag-exists check compares against v<version>; the original compared the bare version and never matched.
  • release-complete requires merged == true, so closing a release PR without merging no longer refreshes development.
  • Release jobs check out the PR's base branch explicitly rather than the transient PR merge ref.
  • No development-publish.yml: merges into development do not tag pre-releases.
  • The version bump edits only the version field, so package.json keeps its formatting.

Before merging the release PR to main

  • The App must be installed on this repository with Contents and Workflows write. The preflight run on the release PR confirms this.
  • CHANGELOG.md still has an Unreleased section above the 1.0.0 entry that should be folded in, and that entry is dated 2026/06.

SimonDarksideJ and others added 5 commits September 4, 2026 13:07
Adds the publish chain that runs when a pull request into main is merged:
main-publish selects the release type from the PR title, bumps package.json,
tags v<version>, refreshes development from main and moves development to the
next pre-release. All pushes use a short-lived token minted from the
ui-extensions-bot GitHub App (org secrets RELEASE_APP_CLIENT_ID and
RELEASE_APP_PRIVATE_KEY), so no personal access token is needed.

Also adds a release-preflight workflow that runs on pull requests into main.
It checks the App can push to the repo and reports the version the merge
will tag. It publishes nothing.

The development test run is unchanged apart from enabling the Ubuntu build
targets, which were commented out and left the Ubuntu matrix legs failing.
There is no development publish workflow: merges into development only test.

Ported from the sister com.unity.uiextensions repo's development branch, with
the tag step fixed (tag HEAD rather than a bash-style variable that is empty
under pwsh), the tag-exists check corrected to compare against v<version>,
and the closed-without-merge case no longer refreshing development.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Puts the UI Toolkit hero image from the GitHub.io press kit at the top,
followed by the title, the OpenUPM and workflow badges, and the description.
The OpenUPM badge is live now that the listing has been submitted.

Removes the Coming Soon notes: the install section shows the OpenUPM command
plainly and Getting Started points at the package samples and the docs site.
Fixes the license links, which pointed at a release branch file that does not
exist, and a stray character at the end of the license line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@SimonDarksideJ
SimonDarksideJ merged commit 2096cbf into development Sep 4, 2026
38 of 42 checks passed
@SimonDarksideJ
SimonDarksideJ deleted the feature/release-automation branch September 4, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant