storebound/templates/workflows/release.yml

58 lines
2.4 KiB
YAML

# storebound flow "release" for a game: one version on both stores, up to your Submit click.
# storebound flow run release VERSION=1.2.0 reads run, writes run as dry runs (nothing changes)
# storebound flow run release VERSION=1.2.0 --apply writes run for real; each command still asks you first
# storebound flow run release --resume --apply continue after fixing a failed step
# Steps are storebound commands (no "storebound" prefix). `if: apple` / `if: play` skip a store the config does not
# have; `if: ${PARAM}` turns an optional step on by a param (MAC_TAURI=<src-tauri> adds the macOS build, PLAY_TRACK=beta
# uploads to Play open testing); VERSION is required; `owner:` steps are never run, they list what you click. `sh:` runs your own build command (only with --apply).
description: Build, upload and check one game version on both stores, then your Submit click
params:
VERSION: "?"
MAC_TAURI: ""
PLAY_TRACK: "internal"
steps:
- id: shots
if: exists store/renders
run: shots check
- id: next-build
if: apple
run: apple next-build
capture: BUILD
- id: build
if: apple
run: apple build --version ${VERSION} --build-number ${BUILD}
- id: upload
if: apple
run: apple upload --no-wait --build ${BUILD} --allow-existing
- id: wait
if: apple
run: apple testflight wait --build ${BUILD} --version ${VERSION}
- id: mac-build
if: apple && ${MAC_TAURI}
run: apple build --platform macos --tauri ${MAC_TAURI} --version ${VERSION} --build-number ${BUILD}
- id: mac-upload
if: apple && ${MAC_TAURI}
run: apple upload --platform macos --no-wait --allow-existing
- id: play-build
if: play
run: play build --version-name ${VERSION}
- id: play-upload
if: play
run: play upload --track ${PLAY_TRACK}
- id: promote
if: play && ${PLAY_TRACK} != production
owner: "Play Console: promote the ${PLAY_TRACK} release to production (storebound play release --version-code <code> --production completed once you agree)"
- id: whats-new
if: exists store/whats-new
run: whats-new apply
- id: listing
if: apple
run: apple listing --version ${VERSION} --build ${BUILD}
- id: validate
run: validate
- id: scan
run: scan
- id: plan
run: release plan ${VERSION}
- id: submit
owner: "App Store Connect: Submit for Review (version ${VERSION}, build ${BUILD}). Play Console: promote the ${PLAY_TRACK} release and Send changes for review"