Repository navigation
Use Unity CLI for gated tests and GitHub App releases - #106
Merged
Merged
Conversation
Why Use Unity CLI to manage the Editor and license directly, and focus CI on the supported Editor behavior and one player target. What Changed Replace GameCI steps with a shared Unity setup action and direct test, build, and package export commands. Keep EditMode coverage on Unity 2021.3 and 2023.2, reduce player builds to Linux 64-bit, retain logs and artifacts, and update the CI instructions. Impact UNITY_LICENSE is the only Unity secret consumed by the workflows. Fork pull requests continue to receive no repository secrets. Local validation passed both EditMode suites, the Linux player build, package export, and workflow linting; hosted-runner validation follows in the PR.
Why Routine pushes and pull requests need EditMode coverage without the cost of player builds and package exports. What Changed Remove the standalone Build and Export Package workflows. Run the Linux example build and package export together in the manually dispatched Release workflow, and align the CI instructions. Impact Push and pull-request workflows run EditMode tests only. Release creation still requires a successful player build and package export.
Why Branch rulesets need one stable status check that succeeds only after every required verification job has passed. What Changed Add a final Verification job that always runs after the EditMode matrix and fails unless the matrix result is success. Keep the existing push branch exclusions and document the check's contract. Impact A failed, cancelled, or skipped EditMode matrix cannot produce a successful Verification check. Validated all four dependency-result cases and workflow linting.
Why Required checks must report a result for documentation-only pull requests without treating missing required test results as successful. What Changed Detect Unity project and test setup changes before the EditMode matrix, and always evaluate the detection result and applicable test outcomes in Verification. Remove the badge for the deleted Build workflow. Impact Documentation-only pull requests can pass without starting Unity. Detection failures and failed, cancelled, or unexpectedly skipped required tests still fail Verification.
Why A missing change-filter output must not be interpreted as tests being unnecessary, and an invalid license should fail before downloading an Editor. What Changed Preserve the exact filter output for Verification and activate the Unity license before installing the requested Editor. Impact Unknown validation requirements fail the final check. License failures avoid the expensive Editor download.
Why Desktop license files cannot be imported on ephemeral GitHub runners because their machine bindings differ. What Changed Use the existing Unity account secrets with the Editor's licensing client, verify the resulting license state, and return active licenses after each job. Impact Unity CLI still installs Editors and runs tests, builds, and exports. CI activation no longer depends on a desktop-bound UNITY_LICENSE file, and failures continue to block Verification.
Why Both hosted EditMode suites pass, but Unity CLI rejects returning the Personal license activated by the bundled client. What Changed Return the runner's license using the bundled licensing client and use the Editor's credentialed return for entitlement licenses without a ULF file. Impact Test and release jobs share bounded cleanup after activation, including failed runs. License return failures remain visible and prevent Verification from passing.
Why The required pull request ruleset prevents Release from pushing a package version commit directly to main, blocking the Linux build and package export. What Changed Read the version and SHA from the dispatched commit, build that exact SHA, and create only its version tag after the build succeeds. Reject tags for different commits and document version updates through pull requests. Impact Release works with protected main. Maintainers merge the package version update before dispatching Release; write permission is limited to the release publisher.
Why Release needs the GitHub App's pull request exception to update its package version on a protected branch. What Changed Restore the version tag input and use repository-scoped App tokens for version commits, tags, and draft releases. Validate SemVer before editing the manifest and require a conditional fast-forward from the checked-out source. Build and publication share the prepared commit SHA. Impact Maintainers can release through one manual workflow. Concurrent branch changes and conflicting tags fail without replacing remote state, and each writing job owns its token.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verificationcheck. Build the example player and export the package during manual Release runs.package.jsonthrough the MackySoft Release GitHub App, and builds that exact commit before creating its tag and draft release.Scope
1.0.0-beta.12. Activate a license on each runner usingUNITY_EMAILandUNITY_PASSWORD, verify active license state, and return the license after activation. Desktop-boundUNITY_LICENSEfiles are no longer imported.Verification. Successful detection and required test success, or an intentional skip when tests are unnecessary, passes. Failed detection and failed, cancelled, or unexpectedly skipped required tests fail the check..unitypackage, retaining logs and artifacts.AGENTS.mdand remove the obsolete Build badge from the root README. Unity source and tests are unchanged. The App ID and private-key secret are registered, the repository is included in the App installation, and its bypass applies only to the PR rule; deletion and non-fast-forward protection remain enforced.Verification
213f64cpassed in the pull request workflow and push workflow on Ubuntu 22.04, including activation, license return, and finalVerification. Downloaded NUnit artifacts confirm 22/22 tests passed on Unity 2021.3.45f2 and 25/25 passed on Unity 2023.2.22f1 in each run, with no failures or skips..unitypackageexport succeeded, and both artifacts were inspected.actionlint, ShellCheck, shell syntax, YAML parsing, andgit diff --checkpassed. Nine change-filter cases and nine final-check cases produced the expected results; an earlier hosted failure confirmed that activation failure failsVerification.contents:write, and revoked after verification. Both reviewers independently checked the PR exception and preserved branch protections.