From a09b2ffdb3dd3ab8d378bc23553fb34d7a1f0126 Mon Sep 17 00:00:00 2001 From: MohitMali Date: Fri, 10 Nov 2023 11:55:14 +0530 Subject: [PATCH 1/3] Storing dummy bundle on github workflow. * We have enhanced `publish.yml` to storing dummy bundle in workflow, for this we needs to add `"new": true` in info.json file. * We have modify our `README.md` file to document this. --- .github/workflows/publish.yml | 60 ++++++++++++++++++++++++++++++++++- README.md | 1 + 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0575f5f..270e08d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -39,4 +39,62 @@ jobs: DWDS_HTTP_BASIC_ACCESS_AUTHENTICATION: ${{ secrets.DWDS_HTTP_BASIC_ACCESS_AUTHENTICATION }} run: | cd kiwix-android - eval "./gradlew publish${TAG^}ReleaseApkWithExpansionFile" + eval "./gradlew publish${TAG^}ReleaseBundleWithPlayAssetDelivery" + + publish_dummy_bundle: + runs-on: ubuntu-22.04 + + steps: + - name: Retrieving custom app configuration + uses: actions/checkout@v3 + + - name: Retrieving Kiwix Android source code + run: git clone --depth=1 --single-branch --branch develop https://github.com/kiwix/kiwix-android.git + + - name: Copying custom app configuration into Kiwix Android code base + run: ./copy_files_to_kiwix_android.sh + + - name: Preparing signing material + env: + keystore: ${{ secrets.keystore }} + run: | + echo "$keystore" | base64 -d > kiwix-android/kiwix-android.keystore + + - name: Set tag variable + run: echo "TAG=$(echo ${GITHUB_REF:10})" >> $GITHUB_ENV + + - name: Should upload dummy Bundle + run: | + cd ${TAG} + new=$(grep -o '"new": true' info.json) + if [ -n "$new" ]; then + echo "The 'new' attribute is true, proceeding to publish dummy bundle..." + else + echo "The 'new' attribute is not true, skipping the next job." + exit 0 # Skip the job as Bundle is already published on play store + fi + + - name: Generate dummy Bundle + env: + KEY_ALIAS: ${{ secrets.KEY_ALIAS }} + KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} + DWDS_HTTP_BASIC_ACCESS_AUTHENTICATION: ${{ secrets.DWDS_HTTP_BASIC_ACCESS_AUTHENTICATION }} + run: | + cd kiwix-android + eval "./gradlew bundle${TAG^}Release" + + + - name: Get Bundle name and path + id: bundle-path + run: | + BUNDLE_PATH="kiwix-android/custom/build/outputs/bundle/${TAG}Release/*${TAG}*.aab" + BUNDLE_NAME="${TAG^}DummyBundle.aab" + echo "::set-output name=bundle_path::$BUNDLE_PATH" + echo "::set-output name=bundle_name::$BUNDLE_NAME" + + - name: Upload Bundle as an artifact + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.bundle-path.outputs.bundle_name }} + path: ${{ steps.bundle-path.outputs.bundle_path }} \ No newline at end of file diff --git a/README.md b/README.md index db1a64a..11c5f62 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ important fields are: - `disable_sidebar`, a boolean value, when set to `true`, it hides the sidebar - `disable_tabs`, a boolean value, when set to `true`, it deactivates the multi-tabs feature - `disable_read_aloud`, a boolean value, when set to `true`, it disable the text-to-speech feature +- `new`, A boolean value, when set to `true`, it triggers the creation and storage of a dummy release Bundle during the current workflow run. You can also create this new file using Github IO. Go to https://github.com/kiwix/kiwix-android-custom/new/master and type From 54d91ec99facdc671dbe133660852bcf9b790a1d Mon Sep 17 00:00:00 2001 From: MohitMali Date: Fri, 10 Nov 2023 15:48:02 +0530 Subject: [PATCH 2/3] We have removed the deprecated ``::set-output` from our CI pipeline and replaced it with the usage of `GITHUB_ENV`. --- .github/workflows/publish.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 270e08d..be7bdac 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -90,11 +90,11 @@ jobs: run: | BUNDLE_PATH="kiwix-android/custom/build/outputs/bundle/${TAG}Release/*${TAG}*.aab" BUNDLE_NAME="${TAG^}DummyBundle.aab" - echo "::set-output name=bundle_path::$BUNDLE_PATH" - echo "::set-output name=bundle_name::$BUNDLE_NAME" + echo "bundle_path=$BUNDLE_PATH" >> $GITHUB_ENV + echo "bundle_name=$BUNDLE_NAME" >> $GITHUB_ENV - name: Upload Bundle as an artifact uses: actions/upload-artifact@v2 with: - name: ${{ steps.bundle-path.outputs.bundle_name }} - path: ${{ steps.bundle-path.outputs.bundle_path }} \ No newline at end of file + name: ${{ env.bundle_name }} + path: ${{ env.bundle_path }} \ No newline at end of file From c150fe5ef0866c933f47fbda563dbc1b664e6cbf Mon Sep 17 00:00:00 2001 From: Emmanuel Engelhart Date: Fri, 10 Nov 2023 13:43:38 +0100 Subject: [PATCH 3/3] Further README.md improvements --- README.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 11c5f62..fb61741 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,9 @@ important fields are: - `disable_sidebar`, a boolean value, when set to `true`, it hides the sidebar - `disable_tabs`, a boolean value, when set to `true`, it deactivates the multi-tabs feature - `disable_read_aloud`, a boolean value, when set to `true`, it disable the text-to-speech feature -- `new`, A boolean value, when set to `true`, it triggers the creation and storage of a dummy release Bundle during the current workflow run. +- `new`, A boolean value, when set to `true`, it triggers the creation + and storage of a dummy release Bundle during the current workflow + run. You can also create this new file using Github IO. Go to https://github.com/kiwix/kiwix-android-custom/new/master and type @@ -141,20 +143,24 @@ then Go to the [release This triggers a [Github action](https://github.com/kiwix/kiwix-android-custom/actions) that - will build an app using kiwix-android master branch and the icon - set/json defined in this repository and then upload it to the Play - Console in draft to alpha with an expansion file attached. Therefore, - go to the [Google Play Store Admin - dashboard](https://play.google.com/apps/publish) for the - corresponding app and go to menu "Publication management" > "App version": - under "Alpha", you can click on "Modify version". After a couple of hours - the new version of the app should be listed in the public Play Store. - -Remark: This will only work with app updates. To create a new custom - app an app must be built manually and submit to the Google Play store + will build an app Bundle using kiwix-android master branch and the + illustrations/icons set/json defined in this repository. + +The very first release has to be done manually. Put the `new` +[attribute](#description-json-file) so the release management action +provides you the dummy first bundle to upload. + +All other further releases (without the `new` attribute in the + `json.info`) are then uploaded automatically to the Google Play app + store as draft. Therefore, once released, go then to the [Google Play + Store Admin dashboard](https://play.google.com/apps/publish) for the + corresponding app and go to menu "Publication management" > "App + version": under "Internal Testing", you can click on "Modify + version". After a couple of hours the new version of the app should + be listed in the public Play Store. License ------- [GPLv3](https://www.gnu.org/licenses/gpl-3.0) or later, see -[LICENSE](LICENSE) for more details. \ No newline at end of file +[LICENSE](LICENSE) for more details.