Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a validation check with app/playstore prior to publishing a release #656

Open
laurentS opened this issue Nov 30, 2022 · 4 comments
Open
Labels

Comments

@laurentS
Copy link
Member

Our current process to publish a new release looks like:

  • open PR from dev to master
  • review/merge
  • add a new version commit+tag on master via our release script
  • wait for CI to build and publish to both stores
  • be sad when either of them (or both) fail 😭

At this point, we've waited several hours, and our release hasn't gone through. In some cases, like today, one store accepts the release, but not the other one. To keep release numbers in sync, we now have to figure out what the problem is, fix in dev and restart the whole process.

It would help to have a way to validate that a release will be accepted by the stores before we send it "officially", which would save hours. I suspect there might be a way to do this with fastlane, but haven't found the solution yet.

@laurentS laurentS added the bug label Nov 30, 2022
@laurentS
Copy link
Member Author

Looks like an option for this was added recently to fastlane for apple.
precheck would probably be helpful as well (iOS again) http://docs.fastlane.tools/actions/precheck/

@laurentS
Copy link
Member Author

and maybe validate_only on https://docs.fastlane.tools/actions/upload_to_play_store/ for android?

@laurentS
Copy link
Member Author

laurentS commented Dec 1, 2022

This page might be useful to check manually as part of our release process https://developer.android.com/distribute/play-policies

@laurentS
Copy link
Member Author

laurentS commented Dec 6, 2022

following the mixup with #659 , I tried running the fastlane deploy lane we normally use to publish to the playstore, but setting validate_only=true locally.

This is the output from fastlane on my machine, after building the apk locally using yarn buildProd. My understanding is that google is happy.
We should probably run something like this in CI:

  • either in master on untagged commits (so not actually releasing)
  • on the dev branch, maybe when we build a dev release, build the production one in parallel, and validate it against playstore/appstore to be able to anticipate problems
[12:18:41] ❯ bundle exec fastlane deploy
[✔] 🚀
[12:32:38]: ------------------------------
[12:32:38]: --- Step: default_platform ---
[12:32:38]: ------------------------------
[12:32:38]: Driving the lane 'android deploy' 🚀
[12:32:38]: ----------------------------------
[12:32:38]: --- Step: upload_to_play_store ---
[12:32:38]: ----------------------------------

+------------------------------------+---------------------------------------------------------------------+
|                                        Summary for supply 2.211.0                                        |
+------------------------------------+---------------------------------------------------------------------+
| track                              | internal                                                            |
| apk                                | app/build/outputs/apk/production/release/app-production-release.apk |
| validate_only                      | true                                                                |
| package_name                       | org.missingmaps.mapswipe                                            |
| release_status                     | completed                                                           |
| metadata_path                      | ./fastlane/metadata/android                                         |
| json_key                           | ./google_play_api_key.json                                          |
| skip_upload_apk                    | false                                                               |
| skip_upload_aab                    | false                                                               |
| skip_upload_metadata               | false                                                               |
| skip_upload_changelogs             | false                                                               |
| skip_upload_images                 | false                                                               |
| skip_upload_screenshots            | false                                                               |
| track_promote_release_status       | completed                                                           |
| check_superseded_tracks            | false                                                               |
| timeout                            | 300                                                                 |
| deactivate_on_promote              | true                                                                |
| changes_not_sent_for_review        | false                                                               |
| rescue_changes_not_sent_for_review | true                                                                |
| ack_bundle_installation_warning    | false                                                               |
+------------------------------------+---------------------------------------------------------------------+

[12:32:39]: Preparing apk at path 'app/build/outputs/apk/production/release/app-production-release.apk' for upload...
[12:32:49]:     Version Code: 2020302
[12:32:49]: Updating track 'internal'...
[12:32:50]: Preparing to upload for language 'en-US'...
[12:32:51]: Uploading image file ./fastlane/metadata/android/en-US/images/icon.png...
[12:32:53]: Could not find changelog for '2020302' and language 'en-US' at path ./fastlane/metadata/android/en-US/changelogs/2020302.txt...
[12:32:53]: Preparing to upload for language 'ru-RU'...
[12:32:54]: Could not find changelog for '2020302' and language 'ru-RU' at path ./fastlane/metadata/android/ru-RU/changelogs/2020302.txt...
[12:32:55]: Validating all changes with Google Play...
[12:32:56]: Successfully validated the upload to Google Play

+------+----------------------+-------------+
|             fastlane summary              |
+------+----------------------+-------------+
| Step | Action               | Time (in s) |
+------+----------------------+-------------+
| 1    | default_platform     | 0           |
| 2    | upload_to_play_store | 18          |
+------+----------------------+-------------+

[12:32:57]: fastlane.tools finished successfully 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant