Bluesky app fork with some witchin' additions 💫

✍️ Add OTA Docs (#4187)

* add OTA documentation

* maybe will look better

* nits

* one more nit

* use the right image

authored by hailey.at and committed by

GitHub f9244658 9900d329

+81
+81
docs/deploy-ota.md
··· 1 + # OTA Deployments 2 + 3 + ## Overview 4 + 5 + ![OTA Deployment](./img/ota-flow.png) 6 + 7 + ## Internal Deployments 8 + 9 + Internal OTA deployments should be performed automatically upon all merges into main. In cases where the fingerprint 10 + diff results in incompatible native changes, a new client build will automatically be ran and deployed to TestFlight 11 + (iOS) or delivered in Slack (Android). 12 + 13 + ## Production Deployments 14 + 15 + ### Prerequisites 16 + 17 + - Remove any internal client from your device and download the client from the App Store/Google Play. This will help for 18 + testing as well as retrieving the build number. 19 + - You should have signed in to EAS locally through npx eas login. You will need to modify the build number in a 20 + subsequent step. 21 + - Identify the build number of the production app you want to deploy an update for. iOS and Android build numbers are 22 + divergent, so you will need to find both 23 + 24 + ![app-build-number](./img/app-build-number.png) 25 + 26 + - Ensure that the commit the initial client was cut from is properly tagged in git. The tag should be in the format of 1.X.0 27 + - Note: If the commit is not properly tagged, then the OTA deployment will simply fail since the GitHub Action will 28 + not be able to find a commit to fingerprint and diff against. 29 + 30 + ### Preparation 31 + 32 + - Create a new branch from the git tag that the initial release was cut from if no OTA deployment has been made yet for this 33 + client. Name this branch `1.X.0-ota-1` 34 + - If a deployment has been made previously for this release, increment the branch name, i.e. `1.x.0-ota-2` 35 + - If necessary, cherry-pick the commit(s) that you wish to deploy 36 + - Ensure that the package.json’s version field is set to the appropriate value. As long as used the correct git tag 37 + to create your branch from, this should be properly set. 38 + 39 + ### Deployment 40 + 41 + - Update the build number through EAS 42 + - Note: This isn’t strictly necessary, but having a step that takes you off of GitHub and into the terminal provides 43 + a little “friction” to avoid fat fingering a release. Since there are legitimate reasons to just “click and deploy” 44 + for internal builds, I felt it useful to make sure it doesn’t accidentally become a prod deployment. 45 + - Set the build number to the appropriate build number found in the prerequisite steps. Again, this should be the 46 + build number for the current production release you want to deploy for. 47 + - `npx eas build:version:set -p ios` 48 + - `npx eas build:version:set -p android` 49 + - Run the deployment 50 + - Navigate to https://github.com/bluesky-social/social-app/actions/workflows/bundle-deploy-eas-update.yml 51 + - Select the “Run Workflow” dropdown 52 + 53 + ![run-workflow](./img/run-workflow.png) 54 + 55 + - Select the branch for the deployment you are releasing. 56 + 57 + ![branch-selection](./img/branch-selection.png) 58 + 59 + - Double check the branch selection. 60 + - Select the production channel 61 + - Enter the version for the client you are releasing to, i.e. 1.80.0 62 + - Note: If you do enter an incorrect version here, the deployment will either: 63 + - Fail because the action cannot find a commit with your misentered version 64 + - Succeed - but with no users receiving the update. This is because the version you entered will not properly 65 + correlate to a _build number_ as well, so no clients in the wild will be able to receive the update. 66 + 67 + ![other-ota-options](./img/other-ota-options.png) 68 + 69 + - Triple check the branch selection. 70 + - You selected the correct branch 71 + - You selected the "Production" channel 72 + - You entered the correct version in the format of `1.X.0`. 73 + - Press “Run Workflow” 74 + 75 + In about five minutes, the new deployment should be available for download. To test: 76 + 77 + - Remove the internal build of the app from your device 78 + - Download the app from the App Store/Google Play 79 + - Launch the app once and wait approximately 15 seconds 80 + - Relaunch the app 81 + - Check the Settings page and scroll to the bottom. The commit hash should now be the latest commit on your deployed branch.
docs/img/app-build-number.png

This is a binary file and will not be displayed.

docs/img/branch-selection.png

This is a binary file and will not be displayed.

docs/img/ota-flow.png

This is a binary file and will not be displayed.

docs/img/other-ota-options.png

This is a binary file and will not be displayed.

docs/img/run-workflow.png

This is a binary file and will not be displayed.