Skip to content

myPlanet release

myPlanet release #945

Workflow file for this run

name: myPlanet release
on:
push:
branches:
- 'master'
workflow_dispatch:
jobs:
release:
name: myPlanet release
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build: [default, lite]
env:
ANDROID_NDK_VERSION: "21.3.6528147"
BUILD_TOOLS_VERSION: "34.0.0"
steps:
- name: checkout repository code
uses: actions/checkout@v4
- name: diff the code to get lite
run: |
if [[ "${{ matrix.build }}" == "lite" ]]; then
echo "lite"
ls -al \
app/build.gradle \
app/src/main/AndroidManifest.xml \
app/src/main/java/org/ole/planet/myplanet/base/BaseContainerFragment.kt \
app/src/main/java/org/ole/planet/myplanet/base/PermissionActivity.kt \
app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardActivity.kt
sed -i 's/\(versionName "[0-9.]\+\)"/\1-lite"/' app/build.gradle
cp app/src/main/AndroidManifest.xml.lite app/src/main/AndroidManifest.xml
cp app/src/main/java/org/ole/planet/myplanet/base/BaseContainerFragment.kt.lite app/src/main/java/org/ole/planet/myplanet/base/BaseContainerFragment.kt
cp app/src/main/java/org/ole/planet/myplanet/base/PermissionActivity.kt.lite app/src/main/java/org/ole/planet/myplanet/base/PermissionActivity.kt
cp app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardActivity.kt.lite app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardActivity.kt
fi
- name: set more env
run: echo "BRANCHNAME="${GITHUB_REF##*/} >> $GITHUB_ENV
- name: expose version from build.gradle
uses: dogi/[email protected]
with:
expose-version-name: 'true'
expose-version-code: 'true'
- name: setup JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
cache: 'gradle'
- name: install NDK
run: |
set -x
echo "ANDROID_HOME is set to: ${ANDROID_HOME}"
echo "ANDROID_SDK_ROOT is set to: ${ANDROID_SDK_ROOT}"
echo "ANDROID_NDK_VERSION is set to: ${ANDROID_NDK_VERSION}"
echo "y" | sudo ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;${ANDROID_NDK_VERSION}" --sdk_root=${ANDROID_SDK_ROOT} 2>&1
if [ $? -ne 0 ]; then
echo "SDK Manager command failed"
exit 1
fi
set +x
chmod +x ./gradlew
- name: build release APK and AAB
run: |
./gradlew assembleRelease bundleRelease
ls -alR app/build/outputs
mkdir -p sign
cp app/build/outputs/bundle/release/app-release.aab sign/.
cp app/build/outputs/apk/release/app-release-unsigned.apk sign/.
- name: sign release APK and AAB
uses: dogi/sign-android-release@v5
with:
releaseDirectory: sign
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: copy builds to output and generate sha256
run: |
mkdir -p output
cp sign/app-release-unsigned-signed.apk output/myPlanet.apk
cp sign/app-release.aab output/myPlanet.aab
sha256sum output/myPlanet.apk > output/myPlanet.apk.sha256
sha256sum output/myPlanet.aab > output/myPlanet.aab.sha256
ls -alR output
- name: publish AAB to playstore
if: (github.ref == 'refs/heads/master') && (matrix.build == 'lite')
uses: dogi/[email protected]
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: org.ole.planet.myplanet
releaseFiles: output/myPlanet.aab
track: internal
releaseName: "${{ env.ANDROID_VERSION_CODE }} (${{ env.ANDROID_VERSION_NAME }})"
status: completed
- name: rename APK and AAB with version and branch for artifact
if: github.ref != 'refs/heads/master'
run: |
mv output/myPlanet.apk output/myPlanet-${{ env.ANDROID_VERSION_NAME }}-${{ env.BRANCHNAME }}.apk
mv output/myPlanet.apk.sha256 output/myPlanet-${{ env.ANDROID_VERSION_NAME }}-${{ env.BRANCHNAME }}.apk.sha256
mv output/myPlanet.aab output/myPlanet-${{ env.ANDROID_VERSION_NAME }}-${{ env.BRANCHNAME }}.aab
mv output/myPlanet.aab.sha256 output/myPlanet-${{ env.ANDROID_VERSION_NAME }}-${{ env.BRANCHNAME }}.aab.sha256
ls -alR output
- name: upload APK and AAB as build artifact
if: github.ref != 'refs/heads/master'
uses: actions/upload-artifact@v4
with:
name: myPlanet-${{ env.ANDROID_VERSION_NAME }}-${{ env.BRANCHNAME }}
path: output/*
retention-days: 9
- name: release APK and AAB on GitHub
if: github.ref == 'refs/heads/master'
uses: dogi/[email protected]
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: output/*
tag: v${{ env.ANDROID_VERSION_NAME }}
overwrite: 'true'
file_glob: 'true'
- name: send success message to discord
if: (github.ref == 'refs/heads/master') && (matrix.build != 'lite')
run: |
sudo npm install -g @treehouses/cli
export discord_channel="${{ secrets.CHANNEL }}" #remote
echo "https://github.com/open-learning-exchange/myplanet/releases/tag/v${{ env.ANDROID_VERSION_NAME }}"
treehouses feedback "new remote app: https://github.com/open-learning-exchange/myplanet/releases/tag/v${{ env.ANDROID_VERSION_NAME }}"