akshat: oh, yes. I tried to set this up once, but failed on the app side of things and the Gradle changes. Let me check
akshat
Great, I've done this to over 4 apps now and I'm loving it.
Please do not share the json files here in public though, just a reminder ๐
lucifer
alastairp: is it safe to remove blocks like `except Exception: raise APIInternalServerError`. afair, the 500 error handler you put in some time ago handles all uncaught exceptions and these blocks are redundant, wanted to confirm I am not forgetting something?
akshat
outsidecontext: now head to your repo's settings and on to Secrets
ANDROID_KEYSTORE_FILE
KEYSTORE_KEY_ALIAS
KEYSTORE_KEY_PASSWORD
KEYSTORE_STORE_PASSWORD
PLAY_CONIFG_JSON
All these five variables with the respective values
Only the play config json value and the Android keystore file value should be in the base64 encoded version
Just the command `base64 -i play_config.json > play_config.json.b64 ` the gather the base64 encoded version of the file
Use^
Once you've added these, merge my Fastlane PR.
After that all we'll need to do is increment the version code in the next push and the release should be made as a draft on the playstore hope
hopefully^
outsidecontext
cool, let us test this :) need a few minutes to set this up
akshat
Sure!
outsidecontext
the json file I think we probably could also do as plaintext instead of base64 encoding it, but let's got with this first
akshat
I learnt my lesson to encode large text lol because that might contain whitespace
But I think the plain text might work for json
I just saw that you use the `main` branch and not the `master` branch for the default work so I'll make those changes accordingly for you
If I forgot to mention, the ANDROID _KEYSTORE_FILE is the .jks file we use to sign our aab files
outsidecontext
the keystore file that can be managed with keytool, right? I just changed the passwords for that so it is unique for the CI. Setup should work that way.
PR looks good to me. Let's try by merging to beta branch, I'll create one
akshat
Great!
And yeah
ruaok
akshat: lucifer: alastairp: monkey: yvanzo: remember to add the hours we spent on zoom for the summit to your invoice, ok?
outsidecontext: typo from my end, the Secret is supposed to be PLAY_CONFIG_JSON
Had the I and F switched previously
outsidecontext
I update it
akshat
Great
You'll have to push to beta a change to trigger the action again
outsidecontext
I rerun the action, just to see if it works. Secret should actually have been ok, but maybe wrong value. I updated it again, let's see
akshat
Okayyy
outsidecontext
it should still fail to publish because I haven't pushed bumping the versionCode, but I want to see first if the general setup works
akshat
Cool sounds good
I basically failed this setup over 100 times this weekend๐
But it was worth it in the end :)
outsidecontext
:D not sure quite now, how does it behave when you released to beta, then to production? can this be done with the same versionCode, or does it need to be bumped again?
akshat
I think it can be done with the same versionCode
outsidecontext
I think it is running now. I had failed to save the key permissions, but that should be fixed
akshat
Amazing!
I think you need to go through an additional step outsidecontext ?
outsidecontext
oh well "For uploading an AppBundle you must be enrolled in Play Signing.". I avoided this so far, not a fan :D
akshat
Why though?
We can modify the setup for you so that you can locally send the release through the command `fastlane beta`
outsidecontext
don't liked the idea that google instead of myself signs the code being distributed. Don't have much of an issue with that on f-droid, different trust situation. But anyway, I'll set this up here
akshat
Haha okaaayy!
So are you setting up the local solution or enrolling to play signing?
Btw let me know if you learn something new in the process :)
We are yet to write UI tests for the app to automate the screenshots.
outsidecontext
I'll enroll for play signing. I just wonder if we need the keystore on the CI then still
akshat
We do need it. It's just that we only need to sign using these credentials only. Idk if you were allowed to change the password until now, but moving forward we can't.
If we misplace these credentials, we'll have to contact Google to reset our keystore. Pretty good support for that though