Merge branch 'release/v0.2.5' #41
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release Build | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
build-release: | |
name: Build Release Apk | |
runs-on: macos-latest | |
if: github.repository == 'aaa1115910/bv' | |
outputs: | |
lite_release_info_apk_filename: ${{ steps.lite-info.outputs.lite_release_info_apk_filename }} | |
default_release_info_version_code: ${{ steps.default-info.outputs.default_release_info_version_code }} | |
default_release_info_version_name: ${{ steps.default-info.outputs.default_release_info_version_name }} | |
changelog: ${{ steps.changelog.outputs.changelog }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: master | |
fetch-depth: 0 | |
submodules: 'true' | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Write google-services.json | |
env: | |
DATA: ${{ secrets.GOOGLE_SERVICES_JSON }} | |
run: echo $DATA > app/google-services.json | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Add signing properties | |
env: | |
SIGNING_PROPERTIES: ${{ secrets.SIGNING_PROPERTIES }} | |
run: | | |
echo ${{ secrets.SIGNING_PROPERTIES }} > encoded_signing_properties | |
base64 -d encoded_signing_properties > signing.properties | |
- name: Add jks file | |
run: | | |
echo ${{ secrets.SIGN_KEY }} > ./encoded_key | |
base64 -d encoded_key > key.jks | |
- name: Build lite apk | |
run: ./gradlew assembleLiteRelease assembleLiteDebug | |
- name: Build default apk | |
run: ./gradlew assembleDefaultRelease assembleDefaultDebug | |
- name: Read lite release apk output metadata | |
id: apk-meta-lite-release | |
uses: juliangruber/read-file-action@v1 | |
with: | |
path: app/build/outputs/apk/lite/release/output-metadata.json | |
- name: Read lite debug apk output metadata | |
id: apk-meta-lite-debug | |
uses: juliangruber/read-file-action@v1 | |
with: | |
path: app/build/outputs/apk/lite/debug/output-metadata.json | |
- name: Read default release apk output metadata | |
id: apk-meta-default-release | |
uses: juliangruber/read-file-action@v1 | |
with: | |
path: app/build/outputs/apk/default/release/output-metadata.json | |
- name: Read default debug apk output metadata | |
id: apk-meta-default-debug | |
uses: juliangruber/read-file-action@v1 | |
with: | |
path: app/build/outputs/apk/default/debug/output-metadata.json | |
- name: Parse lite apks info | |
id: lite-info | |
run: | | |
echo "lite_release_info_apk_filename=${{ fromJson(steps.apk-meta-lite-release.outputs.content).elements[0].outputFile }}" >> $GITHUB_ENV | |
echo "lite_debug_info_apk_filename=${{ fromJson(steps.apk-meta-lite-debug.outputs.content).elements[0].outputFile }}" >> $GITHUB_ENV | |
echo "lite_release_info_apk_filename=${{ fromJson(steps.apk-meta-lite-release.outputs.content).elements[0].outputFile }}" >> $GITHUB_OUTPUT | |
- name: Parse default apks info | |
id: default-info | |
run: | | |
echo "default_release_info_version_code=${{ fromJson(steps.apk-meta-default-release.outputs.content).elements[0].versionCode }}" >> $GITHUB_ENV | |
echo "default_release_info_version_name=${{ fromJson(steps.apk-meta-default-release.outputs.content).elements[0].versionName }}" >> $GITHUB_ENV | |
echo "default_debug_info_version_code=${{ fromJson(steps.apk-meta-default-debug.outputs.content).elements[0].versionCode }}" >> $GITHUB_ENV | |
echo "default_debug_info_version_name=${{ fromJson(steps.apk-meta-default-debug.outputs.content).elements[0].versionName }}" >> $GITHUB_ENV | |
echo "default_release_info_version_code=${{ fromJson(steps.apk-meta-default-release.outputs.content).elements[0].versionCode }}" >> $GITHUB_OUTPUT | |
echo "default_release_info_version_name=${{ fromJson(steps.apk-meta-default-release.outputs.content).elements[0].versionName }}" >> $GITHUB_OUTPUT | |
- name: Set changelog to output | |
id: changelog | |
run: | | |
echo "changelog<<EOF" >> $GITHUB_OUTPUT | |
echo "$(git log -1 --pretty=short)" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
# upload artifacts lite-debug | |
- name: Archive lite debug build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Lite debug build artifact | |
path: app/build/outputs/apk/lite/debug/${{ env.lite_debug_info_apk_filename }} | |
# upload artifacts lite-release | |
- name: Archive lite release build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Lite release build artifact | |
path: app/build/outputs/apk/lite/release/${{ env.lite_release_info_apk_filename }} | |
- name: Archive lite alpha build mappings | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Lite release build mappings | |
path: app/build/outputs/mapping/liteRelease | |
# upload artifacts default-debug | |
- name: Archive default debug build artifacts (universal) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default debug build artifact (universal) | |
path: app/build/outputs/apk/default/debug/BV_${{ env.default_debug_info_version_code }}_${{ env.default_debug_info_version_name }}_default_universal.apk | |
- name: Archive default debug build artifacts (armeabi-v7a) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default debug build artifact (armeabi-v7a) | |
path: app/build/outputs/apk/default/debug/BV_${{ env.default_debug_info_version_code }}_${{ env.default_debug_info_version_name }}_default_armeabi-v7a.apk | |
- name: Archive default debug build artifacts (arm64-v8a) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default debug build artifact (arm64-v8a) | |
path: app/build/outputs/apk/default/debug/BV_${{ env.default_debug_info_version_code }}_${{ env.default_debug_info_version_name }}_default_arm64-v8a.apk | |
- name: Archive default debug build artifacts (x86) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default debug build artifact (x86) | |
path: app/build/outputs/apk/default/debug/BV_${{ env.default_debug_info_version_code }}_${{ env.default_debug_info_version_name }}_default_x86.apk | |
- name: Archive default debug build artifacts (x86_64) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default debug build artifact (x86_64) | |
path: app/build/outputs/apk/default/debug/BV_${{ env.default_debug_info_version_code }}_${{ env.default_debug_info_version_name }}_default_x86_64.apk | |
# upload artifacts default-release | |
- name: Archive default release build mappings | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default release build mappings | |
path: app/build/outputs/mapping/defaultRelease | |
- name: Archive default release build artifacts (universal) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default release build artifact (universal) | |
path: app/build/outputs/apk/default/release/BV_${{ env.default_release_info_version_code }}_${{ env.default_release_info_version_name }}_default_universal.apk | |
- name: Archive default release build artifacts (armeabi-v7a) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default release build artifact (armeabi-v7a) | |
path: app/build/outputs/apk/default/release/BV_${{ env.default_release_info_version_code }}_${{ env.default_release_info_version_name }}_default_armeabi-v7a.apk | |
- name: Archive default release build artifacts (arm64-v8a) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default release build artifact (arm64-v8a) | |
path: app/build/outputs/apk/default/release/BV_${{ env.default_release_info_version_code }}_${{ env.default_release_info_version_name }}_default_arm64-v8a.apk | |
- name: Archive default release build artifacts (x86) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default release build artifact (x86) | |
path: app/build/outputs/apk/default/release/BV_${{ env.default_release_info_version_code }}_${{ env.default_release_info_version_name }}_default_x86.apk | |
- name: Archive default release build artifacts (x86_64) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Default release build artifact (x86_64) | |
path: app/build/outputs/apk/default/release/BV_${{ env.default_release_info_version_code }}_${{ env.default_release_info_version_name }}_default_x86_64.apk | |
upload-release: | |
name: Upload Release Apk to App Center | |
needs: build-release | |
runs-on: ubuntu-latest | |
steps: | |
# download artifacts | |
- name: download lite release build artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: Lite release build artifact | |
- name: download default release build artifacts (universal) | |
uses: actions/download-artifact@v3 | |
with: | |
name: Default release build artifact (universal) | |
- name: download default release build artifacts (armeabi-v7a) | |
uses: actions/download-artifact@v3 | |
with: | |
name: Default release build artifact (armeabi-v7a) | |
- name: download default release build artifacts (arm64-v8a) | |
uses: actions/download-artifact@v3 | |
with: | |
name: Default release build artifact (arm64-v8a) | |
- name: download default release build artifacts (x86) | |
uses: actions/download-artifact@v3 | |
with: | |
name: Default release build artifact (x86) | |
- name: download default release build artifacts (x86_64) | |
uses: actions/download-artifact@v3 | |
with: | |
name: Default release build artifact (x86_64) | |
# upload to app center | |
- name: Setup app center cli | |
id: setup-appcenter-cli | |
run: npm install -g appcenter-cli | |
- name: Upload lite release apk to app center | |
id: upload-lite-release-apk | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: | | |
appcenter distribute release \ | |
--app aaa1115910-gmail.com/BV \ | |
--file ${{ needs.build-release.outputs.lite_release_info_apk_filename }} \ | |
--group Public \ | |
--token ${{ secrets.APP_CENTER_TOKEN }} \ | |
--release-notes "${{ needs.build-release.outputs.changelog }}" | |
- name: Upload default release apk to app center (universal) | |
id: upload-default-release-apk-universal | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: | | |
appcenter distribute release \ | |
--app aaa1115910-gmail.com/BV \ | |
--file BV_${{ needs.build-release.outputs.default_release_info_version_code }}_${{ needs.build-release.outputs.default_release_info_version_name }}_default_universal.apk \ | |
--group Public-universal \ | |
--token ${{ secrets.APP_CENTER_TOKEN }} \ | |
--release-notes "${{ needs.build-release.outputs.changelog }}" | |
- name: Upload default release apk to app center (armeabi-v7a) | |
id: upload-default-release-apk-armeabi-v7a | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: | | |
appcenter distribute release \ | |
--app aaa1115910-gmail.com/BV \ | |
--file BV_${{ needs.build-release.outputs.default_release_info_version_code }}_${{ needs.build-release.outputs.default_release_info_version_name }}_default_armeabi-v7a.apk \ | |
--group Public-armeabi-v7a \ | |
--token ${{ secrets.APP_CENTER_TOKEN }} \ | |
--release-notes "${{ needs.build-release.outputs.changelog }}" | |
- name: Upload default release apk to app center (arm64-v8a) | |
id: upload-default-release-apk-arm64-v8a | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: | | |
appcenter distribute release \ | |
--app aaa1115910-gmail.com/BV \ | |
--file BV_${{ needs.build-release.outputs.default_release_info_version_code }}_${{ needs.build-release.outputs.default_release_info_version_name }}_default_arm64-v8a.apk \ | |
--group Public-arm64-v8a \ | |
--token ${{ secrets.APP_CENTER_TOKEN }} \ | |
--release-notes "${{ needs.build-release.outputs.changelog }}" | |
- name: Upload default release apk to app center (x86) | |
id: upload-default-release-apk-x86 | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: | | |
appcenter distribute release \ | |
--app aaa1115910-gmail.com/BV \ | |
--file BV_${{ needs.build-release.outputs.default_release_info_version_code }}_${{ needs.build-release.outputs.default_release_info_version_name }}_default_x86.apk \ | |
--group Public-x86 \ | |
--token ${{ secrets.APP_CENTER_TOKEN }} \ | |
--release-notes "${{ needs.build-release.outputs.changelog }}" | |
- name: Upload default release apk to app center (x86_64) | |
id: upload-default-release-apk-x86_64 | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: | | |
appcenter distribute release \ | |
--app aaa1115910-gmail.com/BV \ | |
--file BV_${{ needs.build-release.outputs.default_release_info_version_code }}_${{ needs.build-release.outputs.default_release_info_version_name }}_default_x86_64.apk \ | |
--group Public-x86_64 \ | |
--token ${{ secrets.APP_CENTER_TOKEN }} \ | |
--release-notes "${{ needs.build-release.outputs.changelog }}" |