Skip to content

Conversation

Copy link

Copilot AI commented Nov 28, 2025

Why is this important?

Automates Play Store deployments similar to existing Firebase App Distribution workflow. All Q42 apps use Play Store, so automating pushes to internal test track eliminates manual upload steps.

Notes

New workflow: .github/workflows/playstore-internal.yml

  • Triggers on release/** branches and manual dispatch
  • Builds signed AAB using existing keystore secrets
  • Uploads to Play Store Internal Test track via r0adkll/upload-google-play@v1
  • Sets inAppUpdatePriority: 2 and status: completed

Setup required:

  • Add PLAYSTORE_SERVICE_ACCOUNT_JSON secret (service account with Play Developer API access)
  • Update packageName: nl.q42.template to your app's package name (see "Using this template" section in README)

Documentation updates:

  • Added Play Store deployment section with setup instructions and link to upload-google-play action configuration guide
  • Added explicit reminder in "Using this template" section to update packageName in workflow file after running rename-project.py
  • Fixed workflow comment typos and updated references from APK to AAB

Security:

  • Explicit permissions: contents: read to limit GITHUB_TOKEN scope
  • CodeQL validated, no alerts
Original prompt

This section details on the original issue you should resolve

<issue_title>Github Action to publish release to Playstore Internal Test track</issue_title>
<issue_description>We currently have a Github action to push releases to Firebase App Distribution.

Since 100% of our apps use play store obviously, it might be nice to automate andy pushes to a release branch to the internal test track of a connected Play Store app.

To implement this, I'd say it is fine to create a dummy app q42.template in hte play console and simply don't release it to production; just internal test track</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 5 commits November 28, 2025 14:22
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Copilot AI changed the title [WIP] Add Github action to publish release to Playstore internal test track Add GitHub Action to publish releases to Play Store Internal Test track Nov 28, 2025
Copilot AI requested a review from ninovanhooff November 28, 2025 14:29
@ninovanhooff
Copy link
Collaborator

Tragically, the template's package name is already taken, not sure if I registered it sometime ago or someone else. But it is blocking publishing of the app. (also manually this is not possible)

Changing the package name would mean changing the rename-project.py too. this is possible but feels a bit heavy handed

uses: ./.github/actions/prepare-release

# This will decode the keystore from base 64 text representation that we have stored in secrets
# and generates and keystore file and gets stored in /android-app path
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typos

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ee2733d - changed "generates and keystore file" to "generates a keystore file"

base64 -d <keystore-b64.txt >upload-keystore.jks
# The secrets.gradle file that is stored as text, does not need to be decoded
# and can be directly written to a file
# This file is used by the gradle build to sign the APK
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not apk, but aab

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ee2733d - updated comment to reference AAB instead of APK

README.MD Outdated
- _debug.yml_: any commit on any branch triggers a `devDebug` apk and a `prodDebug` apk build
- _release.yml_: any PR triggers signed release builds (`prodRelease` bundle and `prodRelease` apk)
- _firebase-app-distribution.yml_: any PR to develop triggers a release build that is uploaded to Firebase App Distribution
- _playstore-internal.yml_: any push to release branches (release/*) triggers a release build that is uploaded to Play Store Internal Test track
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to a release branch

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ee2733d - simplified to "any push to a release branch"

README.MD Outdated
3. Add the content of the JSON file to your Github repository secrets as `PLAYSTORE_SERVICE_ACCOUNT_JSON`
4. Update the `packageName` in the [playstore-internal.yml](.github/workflows/playstore-internal.yml) file to match your app's package name

More details on creating a service account can be found in the [Google Play Android Developer API documentation](https://developers.google.com/android-publisher/getting_started).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ee2733d - updated documentation URL to point to the upload-google-play specific service account configuration instructions

Copilot AI and others added 2 commits January 14, 2026 08:49
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Copy link
Author

Copilot AI commented Jan 14, 2026

Tragically, the template's package name is already taken, not sure if I registered it sometime ago or someone else. But it is blocking publishing of the app. (also manually this is not possible)

Ch...

Added an explicit reminder in the "Using this template" section (commit 3cc42e5) to update the packageName in the workflow file after running rename-project.py. Since this is a template, users are expected to customize the package name - the workflow includes a TODO comment and the README now has clear instructions in both the setup section and the Play Store deployment section.

Co-authored-by: ninovanhooff <10351007+ninovanhooff@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Github Action to publish release to Playstore Internal Test track

2 participants