ase release
A game's release, step by step (the game's own CI workflows run these).
ase release version
Print the version this release gets: the one asked for, or the next minor.
Requires: a sign-in (ase login) or, in CI, a release credential. git, with the repo's v* release tags.
Changes: nothing; it only reads.
ase release version [OPTIONS]
| Argument | Description |
|---|---|
--asked <ASKED> |
The version asked for, e.g. 1.2.0; the latest release's minor plus one by default. |
--project <PROJECT> |
The game's project folder. Default .. |
Examples
ase release version
ase release version --asked 1.2.0
ase release notes
Print the release's notes: the commits' Changelog-* trailers since the last release tag, and the changelog's Unreleased lines. Lists the commits without a trailer on stderr.
Requires: a sign-in (ase login) or, in CI, a release credential. git.
Changes: Nothing in the repo. In GitHub Actions it adds the notes to the job's summary.
ase release notes [OPTIONS]
| Argument | Description |
|---|---|
--to <TO> |
The commit to release. Default HEAD. |
--project <PROJECT> |
The game's project folder. Default .. |
Examples
ase release notes > notes.md
ase release roll
Write the release's notes as the version's section of the changelog, if it has one, and empty its Unreleased.
Requires: a sign-in (ase login) or, in CI, a release credential.
Changes: Rewrites the project's CHANGELOG.md, if it has one: the notes become the version's section and Unreleased is emptied. It commits nothing, and ase release unroll moves the lines back.
ase release roll [OPTIONS] --version <VERSION> --notes <NOTES>
| Argument | Description |
|---|---|
--version <VERSION> |
Required. The release's version. |
--notes <NOTES> |
Required. The notes, as ase release notes printed them. |
--date <DATE> |
The section's date; today (UTC) by default. |
--project <PROJECT> |
The game's project folder. Default .. |
ase release unroll
Move a failed release's lines back under Unreleased. Only workflows synced before releases tagged after publishing still call it.
Requires: a sign-in (ase login) or, in CI, a release credential. git.
Changes: Rewrites the project's CHANGELOG.md, moving the version's lines back under Unreleased. It commits nothing.
ase release unroll [OPTIONS] --version <VERSION>
| Argument | Description |
|---|---|
--version <VERSION> |
Required. The release's version. |
--project <PROJECT> |
The game's project folder. Default .. |
ase release plan
The native builds, exports and targets of release.toml, as JSON for the workflows.
Requires: a sign-in (ase login) or, in CI, a release credential. In CI, workflows of this ase's version (ase sync keeps them).
Changes: Writes .ase-release.json in the project. With --write-config, Godot's package also rewrites release.toml's builds and targets to what this run can build.
ase release plan [OPTIONS]
| Argument | Description |
|---|---|
--project <PROJECT> |
The game's project folder. Default .. |
--platforms <PLATFORMS>... |
Only builds for these platforms, comma-separated; all by default. |
--distribution |
Include signed mobile release packages. Build-only runs omit mobile exports. |
--skip-unconfigured-mobile |
Skip mobile builds and store targets whose credentials are missing, with warnings. |
--write-config |
Save this run's available builds/targets to the temporary project's release.toml. |
Examples
ase release plan --distribution --skip-unconfigured-mobile
ase release secrets
Hand the game's store signing and upload keys, read from ASE Brain with the release credential, to the CI job's later steps.
Requires: The release credential of a CI job: a release key (ase studio key) or an OIDC token that one of the studio's trusts (ase studio trust) accepts for the game's repo.
Changes: Appends the keys to $GITHUB_ENV, masked, for the job's later steps, or prints them as export lines. Nothing in ASE Brain changes.
ase release secrets [OPTIONS] --game <GAME>
| Argument | Description |
|---|---|
--game <GAME> |
Required. The game's registry id. |
--names <NAMES>... |
Only these keys, comma-separated; every key Brain holds for the game by default. |
--format <FORMAT> |
github appends them to $GITHUB_ENV, masked; shell prints export lines. GitHub's when GITHUB_ENV is set, else the shell's. One of github, shell. |
Examples
ase release secrets --game neon-drift
eval "$(ase release secrets --game neon-drift --names APPSTORE_UPLOAD_KEY --format shell)"
ase release check-plan
Resolve project-check runners and toolchain requirements.
Requires: a sign-in (ase login) or, in CI, a release credential. In CI, workflows of this ase's version (ase sync keeps them).
Changes: Writes .ase-release.json in the project.
ase release check-plan [OPTIONS]
| Argument | Description |
|---|---|
--project <PROJECT> |
The game's project folder. Default .. |
ase release dependencies
Prepare the selected job's declared engine dependencies.
Requires: a sign-in (ase login) or, in CI, a release credential. .ase-release.json from ase release plan; Python, for Godot.
Changes: Downloads the job's engine: for Godot, the editor into ~/godot and its export templates, and sets GODOT in $GITHUB_ENV.
ase release dependencies [OPTIONS] --job <JOB>
| Argument | Description |
|---|---|
--job <JOB> |
Required. The job's id, as ase release plan or check-plan printed it. |
--project <PROJECT> |
The game's project folder. Default .. |
ase release build
Execute an adapter-owned resolved build.
Requires: a sign-in (ase login) or, in CI, a release credential. .ase-release.json from ase release plan, and the engine (Godot from GODOT, as ase release dependencies sets it).
Changes: Installs the SDK into the project as ase sdk install does, then writes the build into --output.
ase release build [OPTIONS] --job <JOB> --output <OUTPUT>
| Argument | Description |
|---|---|
--job <JOB> |
Required. The job's id, as ase release plan printed it. |
--output <OUTPUT> |
Required. Where the build goes. |
--project <PROJECT> |
The game's project folder. Default .. |
ase release check
Import and check a project through its selected engine package.
Requires: a sign-in (ase login) or, in CI, a release credential. The engine, as for ase release build.
Changes: Installs the SDK into the project as ase sdk install does, then imports the project in the engine, which writes its import files.
ase release check [OPTIONS]
| Argument | Description |
|---|---|
--project <PROJECT> |
The game's project folder. Default .. |
ase release smoke
Play an exported build on this machine as release.toml's [smoke] says, judging its log.
Requires: a sign-in (ase login) or, in CI, a release credential.
Changes: Runs the build on this machine and writes its log into the build's folder.
ase release smoke [OPTIONS] --build <BUILD> --platform <PLATFORM>
| Argument | Description |
|---|---|
--build <BUILD> |
Required. The build's folder, as the export left it. |
--platform <PLATFORM> |
Required. The build's platform: windows, macos or linux. |
--project <PROJECT> |
The game's project folder. Default .. |
Examples
ase release smoke --build out/linux --platform linux
ase release clips
The changelog's clips, waiting on the repo's next draft release.
ase release clips check
Fail if a clip the release's notes name isn't on the shelf; print the names, as JSON.
Requires: a sign-in (ase login) or, in CI, a release credential. Without --shelf, GitHub's gh with a token and GITHUB_REPOSITORY.
Changes: nothing; it only reads.
ase release clips check [OPTIONS] --notes <NOTES>
| Argument | Description |
|---|---|
--notes <NOTES> |
Required. The release's notes, as ase release notes printed them. |
--shelf <FOLDER> |
Take the clips from this folder of the project instead of the repo's next draft release (also ASE_CLIPS_SHELF). |
--project <PROJECT> |
The game's project folder. Default .. |
ase release clips clear
Take released clips off the shelf.
Requires: a sign-in (ase login) or, in CI, a release credential. Without --shelf, GitHub's gh with a token that may change the repo's releases, and GITHUB_REPOSITORY.
Potentially destructive. Deletes the named clips from the repo's
nextdraft release on GitHub, or from the--shelffolder. Deleted clips can't be restored: upload them again.
ase release clips clear [OPTIONS] [NAMES]...
| Argument | Description |
|---|---|
<NAMES>... |
The clips' names, as ase release clips check printed them. |
--shelf <FOLDER> |
Take the clips from this folder of the project instead of the repo's next draft release (also ASE_CLIPS_SHELF). |
--project <PROJECT> |
The game's project folder. Default .. |
ase release stamp
Stamp the registry's ids, the version and the commit into the project.
Requires: a sign-in (ase login) or, in CI, a release credential.
Changes: Writes the version, the commit and the registry's ids into the project's engine files (for Godot, project.godot and export_presets.cfg). It commits nothing.
ase release stamp [OPTIONS] --game <GAME> --version <VERSION> --commit <COMMIT>
| Argument | Description |
|---|---|
--game <GAME> |
Required. The game's id. |
--version <VERSION> |
Required. The release's version. |
--commit <COMMIT> |
Required. The commit being released. |
--project <PROJECT> |
The game's project folder. Default .. |
Examples
ase release stamp --game neon-drift --version 1.2.0 --commit 3f2c1ab
ase release publish
Publish the builds to one target, or check it with --dry-run.
Requires: The release credential of a CI job: a release key (ase studio key) or an OIDC token that one of the studio's trusts (ase studio trust) accepts for the game's repo. .ase-release.json from ase release plan, listing the target. Store targets take only live games and their keys in the job's environment: steam the STEAM_BUILD_* login, steamcmd and openssl; play PLAY_UPLOAD_SERVICE_ACCOUNT; appstore the APPSTORE_UPLOAD_* key and macOS's Transporter. github needs gh and GH_TOKEN.
Potentially destructive. Publishes the release where players or testers get it:
brainmakes the game's config live and hands its notes to the stores;githubcreates thev<version>release and tag;downloadspublishes the builds;serversmakes the server build the one new game servers run;steamsets the build live on thestagingbranch;playcommits it torelease.toml's track (internalby default);appstoreuploads it to App Store Connect without submitting it. With--dry-runit publishes nothing.asehas no unpublish: release another version over it, or remove it in GitHub's or the store's own console.
ase release publish [OPTIONS] --game <GAME> --version <VERSION> --target <TARGET> --builds <BUILDS> --notes <NOTES>
| Argument | Description |
|---|---|
--game <GAME> |
Required. The game's id. |
--version <VERSION> |
Required. The release's version. |
--target <TARGET> |
Required. The target, as release.toml names it: brain, github, downloads, servers, steam, play or appstore. |
--builds <BUILDS> |
Required. One folder per export. |
--notes <NOTES> |
Required. The release's notes, as ase release notes printed them. |
--shelf <FOLDER> |
Take the clips from this folder of the project instead of the repo's next draft release (also ASE_CLIPS_SHELF). |
--dry-run |
Check the target, publishing nothing. |
--strict |
Treat a skipped dry-run target as a failed release preflight. |
--project <PROJECT> |
The game's project folder. Default .. |
Examples
ase release publish --game neon-drift --version 1.2.0 --target steam --builds builds --notes notes.md --dry-run
ase release config
Publish only brain/game.toml and brain/events.toml, without a build or release version. CI proves it with the game's release credential. On your machine, with no release credential set, it publishes as you, signed in with ase login.
Requires: a sign-in (ase login) with the studio permission manage_games (Owner and Admin). In CI, a release credential for the game instead, as ase release publish takes.
Potentially destructive. Publishes the repo's
brain/game.tomlandbrain/events.tomlas the game's live config, which ASE Brain's services read at once. With--dry-runthe registry only checks them. Publish the previous files again to go back.
ase release config [OPTIONS] --game <GAME>
| Argument | Description |
|---|---|
--game <GAME> |
Required. The game's id. |
--project <PROJECT> |
The game's project folder. Default .. |
--dry-run |
Have the registry check the update, publishing nothing. |
Examples
ase release config --game neon-drift --dry-run
ase release config --game neon-drift