###### tags: `Hikingbook` `Release` `Flow Chart` [TOC] # Conduct Release Flow ## Steps 1. Modify the **Version Name** and **Version Code** in 'app/build.gradle' which under the Hikingbook Android Project * **Version Name**: Outdoor version number * **Version Code**: Indoor version number 2. Merge **develope branch** to **master brance** 3. Generate the APK file 4. Put the APK file to [hikingbook-android GCP storage](https://console.cloud.google.com/storage/browser/hikingbook-android;tab=objects?prefix=&forceOnObjectsSortingFiltering=false) and modify APK name to `hikingbook-v'CodeName'.apk` * **For example**: `hikingbook-v0.1.apk` 5. Put the APK file to [Android Daily Build](https://drive.google.com/drive/folders/1RIcnwYi21GVPWulQ55Gv-WiIGhvVoOpp) and modify APK name to `hikingbook-v'CodeName'-versionCode-'X'-'Time of creating APK'-candidate.apk` * **For example**: `hikingbook-v0.1-versionCode-1-202009281305-candidate.apk` 6. Change the context of `https://hikingbook.net/android/latest` API * **versionCode** -> **Current APK Version Code** * **versionName** -> **Current APK Version Name** * **apkURL** -> **APK url which on hikingbook-android GCP storage** * **apkSizeInMB** -> **Current APK size (In MB)** * (Option) **apkDescription** -> **List the change in current APK** * **updatedAt** -> **Current time** 7. Update the APK link on landing page+ 8. Create the new **release branch** (eq. release-0.1.1) 9. Create new **release tag** and edit the **change log** 10. Create the **Change log ticket** on Asana (eq. [Android v0.1.1] Changelog) and edit the chang log 11. Finish ## Flow Chart ```flow st=>start: Start e=>end: End op1=>operation: Modify the Version Name and Version Code op2=>operation: Merge develope branch to master brance op3=>operation: Generate the APK file op4=>operation: Put the APK file to GCP storage op5=>operation: Put the APK file to Daily build op6=>operation: Change the context of '/android/latest' API op7=>operation: Update the APK link on landing page op8=>operation: Create the new release branch op9=>operation: Create new release tag and edit the changelog op10=>operation: Create changelog ticket on Asana st->op1->op2->op3->op4->op5->op6->op7->op8->op9->op10->e ```