play uploads an Android App Bundle to a track or moves a release between tracks; apple uploads an iOS build for TestFlight and submits a version for review. Each is one Python file over the store's own API, with openssl for the signed tokens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KizzWs2WQPWN2qgE7G6r8B
46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
name: Google Play
|
|
description: Uploads an Android App Bundle to a Google Play track, or moves a release from one track to another
|
|
inputs:
|
|
service-account:
|
|
description: The JSON key file of the Google Cloud service account invited in Play Console, from a secret
|
|
required: true
|
|
package:
|
|
description: The application id, for example software.arasaka.meweb
|
|
required: true
|
|
aab:
|
|
description: The signed .aab to upload; leave empty when from-track is given
|
|
required: false
|
|
from-track:
|
|
description: Take the newest release on this track instead of uploading, to promote it to track
|
|
required: false
|
|
track:
|
|
description: internal, alpha (closed testing), beta (open testing), production, or a custom closed track
|
|
default: internal
|
|
status:
|
|
description: completed, draft, inProgress (a staged rollout, with fraction) or halted
|
|
default: completed
|
|
fraction:
|
|
description: The share of users a staged rollout reaches, between 0 and 1
|
|
required: false
|
|
notes:
|
|
description: A folder of <language>.txt release notes, such as en-US.txt and it-IT.txt, 500 characters each at most
|
|
required: false
|
|
name:
|
|
description: The release name shown in Play Console; Google uses the version name when empty
|
|
required: false
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- shell: bash
|
|
run: python3 "$GITHUB_ACTION_PATH/play.py"
|
|
env:
|
|
PLAY_SERVICE_ACCOUNT: ${{ inputs.service-account }}
|
|
PLAY_PACKAGE: ${{ inputs.package }}
|
|
PLAY_AAB: ${{ inputs.aab }}
|
|
PLAY_FROM_TRACK: ${{ inputs.from-track }}
|
|
PLAY_TRACK: ${{ inputs.track }}
|
|
PLAY_STATUS: ${{ inputs.status }}
|
|
PLAY_FRACTION: ${{ inputs.fraction }}
|
|
PLAY_NOTES: ${{ inputs.notes }}
|
|
PLAY_NAME: ${{ inputs.name }}
|