-
-
Notifications
You must be signed in to change notification settings - Fork 8
Release Checklist
Jeff Campbell edited this page Mar 13, 2021
·
4 revisions
This document covers steps taken when a new release is created such that:
- The version number is increased for the relevant package (nuget or Unity package).
- Any compiled or auto-generated documentation is created and included with the release (if any).
- A release is published on GitHub containing the release notes and
.UnityPackage
for that version and tagged in the formatupm/vX.X.X
to therelease/stable
branch. The tag designation in this case triggers an automatic package publish to OpenUPM.
Nuget packages are built and uploaded automatically anytime the source code or C# projects change in the Genesis solution. Anytime source code or the workflow file changes for the .Net Core console app Genesis.CLI
, a GitHub workflow publish_nuget_package
is executed that:
- Builds and runs unit tests for that solution. Code Analysis Tests are skipped as these require the Unity fixtures project solution to have valid assembly references, which in an Actions container it does not at times.
- Builds a nuget package for
Genesis.Plugin
in release mode and uploads it to nuget. - Zips up the contents of the
Publish
folder containingGenesis.CLI
and its related dependencies and plugins in the solution, moves it to the Unity development project, and checks those changes into Git, pushes them up to GitHub. - Creates a tag in the format of
nuget/v0.0.0
for this latest commit and pushes up that tag to GitHub. The version used as part of the tag is auto-generated from theGitVersion
CLI tools.
In order to trigger an automatic release of the Unity UPM package, update the PackageManifestConfig
version and re-generate the VersionConstants.cs
file. Once this file is checked-in, a GitHub workflow publish_unity_package
will be executed that:
- Checks out both the development and release branches for Genesis as separate clones with names and paths that match the
PackageManifestConfig
. - Executes Unit Tests for the development Unity project and uploads the results as a build artifact for the GitHub action.
- Executes the JCMG
PackageToolsCI.Generate
method to generate a new UPM package contents on the release branch clone. - Parses the package json version from the UPM contents.
- Checks in the contents of the release branch, tags it with the format
upm/v0.0.0
where the version number matches the package version. - Pushes up the contents of the release branch and tag to
origin
.