Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 36 additions & 16 deletions build-android/playstore_upload_script.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,44 @@
from googleapiclient.discovery import build

PACKAGE_NAME = "org.godotengine.editor.v4"
TRACK = "alpha"
RELEASE_NAME = "Automated Release"
RELEASE_NOTES = "Automated closed testing release"

def main(aab_path, nds_path, key_path):
def main(aab_path, nds_path, key_path, version_name):
version_base = version_name.split("-")[0]
version_parts = version_base.split(".")
major = version_parts[0]
minor = version_parts[1]
patch = int(version_parts[2]) if len(version_parts) > 2 else 0

release_note = f"Godot Engine {version_name} has arrived!\nNote: This is a pre-release piece of software so be sure to make backups."
track = "alpha"

if version_name.endswith("stable"):
if patch == 0:
release_url = f"https://godotengine.org/releases/{major}.{minor}/"
else:
release_url = f"https://godotengine.org/article/maintenance-release-godot-{major}-{minor}-{patch}/"
release_note = f"Godot Engine {version_name} has arrived!\nRelease page: {release_url}"
track = "beta"

scopes = ["https://www.googleapis.com/auth/androidpublisher"]
credentials = service_account.Credentials.from_service_account_file(key_path, scopes=scopes)

initial_timeout = socket.getdefaulttimeout()
socket.setdefaulttimeout(900)
service = build("androidpublisher", "v3", credentials=credentials)

print("Creating a new edit")
edit_request = service.edits().insert(body={}, packageName=PACKAGE_NAME)
edit = edit_request.execute()
edit = service.edits().insert(body={}, packageName=PACKAGE_NAME).execute()
edit_id = edit["id"]

print(f"Uploading {aab_path}")
upload_request = service.edits().bundles().upload(
bundle_response = service.edits().bundles().upload(
editId=edit_id,
packageName=PACKAGE_NAME,
media_body=aab_path,
media_mime_type="application/octet-stream"
)
bundle_response = upload_request.execute()
).execute()

version_code = bundle_response["versionCode"]
print(f"Uploaded AAB with versionCode: {version_code}")

Expand All @@ -40,19 +54,21 @@ def main(aab_path, nds_path, key_path):
media_mime_type="application/octet-stream"
).execute()

print(f"Assigning version {version_code} to {TRACK} track")
release_name = f"v{version_name} ({version_code})"
print(f"Assigning {release_name} to {track} track")

service.edits().tracks().update(
editId=edit_id,
packageName=PACKAGE_NAME,
track=TRACK,
track=track,
body={
"releases": [{
"name": f"{RELEASE_NAME} v{version_code}",
"name": release_name,
"versionCodes": [str(version_code)],
"status": "completed",
"releaseNotes": [{
"language": "en-US",
"text": RELEASE_NOTES
"text": release_note
}]
}]
}
Expand All @@ -63,10 +79,14 @@ def main(aab_path, nds_path, key_path):
socket.setdefaulttimeout(initial_timeout)

if __name__ == "__main__":
if len(sys.argv) != 4:
print("Usage: python3 upload_playstore.py <aab-path> <native-debug-symbols-path> <json-key-path>")
if len(sys.argv) != 5:
print("Usage: python3 upload_playstore.py <aab-path> <native-debug-symbols-path> <json-key-path> <version-name>")
print("version-name format: <major>.<minor>[.<patch>]-<channel> (e.g. 4.4.1-stable, 4.5-stable, 4.6-dev1)")
sys.exit(1)

aab_path = sys.argv[1]
nds_path = sys.argv[2]
key_path = sys.argv[3]
main(aab_path, nds_path, key_path)
version_name = sys.argv[4]

main(aab_path, nds_path, key_path, version_name)
9 changes: 8 additions & 1 deletion build-android/upload-playstore.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
#!/bin/bash

if [ "$#" -ne 1 ]; then
echo "Usage: $0 <version-name>"
exit 1
fi

VERSION_NAME="$1"

BASEDIR="$(pwd)"

source ${BASEDIR}/config.sh
Expand All @@ -18,4 +25,4 @@ source "$VENV_DIR/bin/activate"
echo "Installing google-api-python-client"
pip install --upgrade google-api-python-client

python3 "$PYTHON_SCRIPT" "$AAB_FILE" "$NDS_FILE" "$JSON_KEY_FILE"
python3 "$PYTHON_SCRIPT" "$AAB_FILE" "$NDS_FILE" "$JSON_KEY_FILE" "$VERSION_NAME"
2 changes: 1 addition & 1 deletion publish-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ fi

if [ -d "deps/playstore_key.json" ]; then
echo "Publishing Android Editor to PlayStore..."
sh build-android/upload-playstore.sh
sh build-android/upload-playstore.sh ${godot_version}
else
echo "Disabling Android Editor publishing as deps/playstore_key.json doesn't exist."
fi
Expand Down