Closed ggirotto closed 3 years ago
@matuella Agreed. Please read the new docs on ARCHITECTURE.md
and let me know what you thought about it. If you missed some information, please let me know because I'm biased since the script was written by me, so everything looks obvious in my point of view
@matuella
It wasn't. Fixed on my last commits.
The build number is controlled by Fastlane lanes, but the version bump is our responsibility. It will not update the version automatically, just bump the build number
If any phase of the scripts fails, it doesn't execute the next phases. It means that, it may successfully update the iOS app but fail in the Android lane, as an example. We don't have a fallback in the script itself. If it failed because an error in the workflow itself, we need to fix it and then submit a new PR pointing to
main
with the fix, and it will naturally trigger the release workflow and repeat the process. If it failed due to an external source, like a connection issue with the stores, we just need to re-run the workflow through Actions tab, since the workflow script itself doesn't have any kind of retry workaround or stuff like that.I added a few docs on ARCHITECTURE.md pointing to the release lanes and Fastlane files. I didn't write much about how the release workflow and the Fastlane files work because all of the mare well documented and are kind of self-explanatory, so I kept the explanation in the ARCHITECTURE.md simpler.
Yes, we are not using Flutter's build number defined in
pubspec.yaml
, we are using those specified in the platforms settings (build.gradle for Android and PBX for iOS). We usepubspec.yaml
to retrieve the version code only (major.minor.patch), but the build number are specified and managed directly in the platform source files.iOS
Fastlane has an additional feature that it sets as the build number the latest build number available on testflight + 1. Android just bumps the build number that exists in the localbuild.gradle
, even if this build number is not in Google Play store yet. This because iOS has an action that supports fetching this information from App Store Connect, while Android doesn't.We cannot reset the build number for Android apps, only in iOS. It means that the Android build number will increment indefinitely, while iOS will reset on every version change.