Update project #54
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: Check Commit CI | |
on: | |
push: | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
workflow_dispatch: | |
concurrency: | |
group: environment-${{ github.ref }} | |
cancel-in-progress: false | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
TMDB_API_KEY: ${{ secrets.TMDB_API_KEY }} | |
jobs: | |
job-common: | |
runs-on: ubuntu-latest | |
outputs: | |
SHORT_SHA: ${{ steps.expose_sha.outputs.short_sha }} | |
steps: | |
- name: expose short commit sha | |
id: expose_sha | |
run: | | |
SHORT_SHA=${GITHUB_SHA::7} | |
echo "short_sha=$SHORT_SHA" >> $GITHUB_ENV | |
echo "SHORT_SHA=$SHORT_SHA" >> $GITHUB_OUTPUT | |
build-android: | |
if: false | |
needs: job-common | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
env: | |
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }} | |
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }} | |
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }} | |
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }} | |
SHORT_SHA: ${{ needs.job-common.outputs.SHORT_SHA }} | |
steps: | |
- name: checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: setup jdk 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: cache gradle dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-${{ runner.os }}-${{ hashFiles('/*.gradle*', '/gradle-wrapper.properties') }} | |
restore-keys: | | |
gradle-${{ runner.os }}- | |
- name: cache gradle wrapper | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
- name: clean outputs directory | |
run: rm -rf app/build/outputs/* | |
- name: make gradlew executable | |
run: chmod +x ./gradlew | |
- name: decode keystore file | |
id: decode_keystore_file | |
uses: timheuer/base64-to-file@v1 | |
with: | |
fileName: 'keystore_release.jks' | |
encodedString: ${{ secrets.KEYSTORE_FILE }} | |
- name: set decoded file location as environment | |
run: echo "KEYSTORE_FILE=${{ steps.decode_keystore_file.outputs.filePath }}" >> $GITHUB_ENV | |
- name: assemble android gms debug artifact | |
run: ./gradlew androidApp:assembleGmsDebug | |
- name: assemble android hms debug artifact | |
run: ./gradlew androidApp:assembleHmsDebug | |
- name: assemble android foss debug artifact | |
run: ./gradlew androidApp:assembleFossDebug | |
- name: assemble android gms release artifact | |
run: ./gradlew androidApp:assembleGmsRelease | |
- name: assemble android hms release artifact | |
run: ./gradlew androidApp:assembleHmsRelease | |
- name: assemble android foss release artifact | |
run: ./gradlew androidApp:assembleFossRelease | |
- name: assemble android gms release bundle artifact | |
run: ./gradlew androidApp:bundleGmsRelease | |
- name: upload artifacts to outputs | |
uses: actions/upload-artifact@v4 | |
with: | |
path: | | |
androidApp/build/outputs/apk/gms/debug | |
androidApp/build/outputs/apk/hms/debug | |
androidApp/build/outputs/apk/foss/debug | |
androidApp/build/outputs/apk/gms/release | |
androidApp/build/outputs/apk/hms/release | |
androidApp/build/outputs/apk/foss/release | |
androidApp/build/outputs/bundle/gmsRelease | |
- name: expose version name | |
id: version_name | |
run: | | |
VERSION_NAME=$(./gradlew androidApp:printVersionName -q) | |
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV | |
- name: expose version code | |
id: version_code | |
run: | | |
VERSION_CODE=$(./gradlew androidApp:printVersionCode -q) | |
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV | |
- name: expose android apk paths | |
run: | | |
echo "GMS_DEBUG_APK_PATH=$(find androidApp/build/outputs/apk/gms/debug -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
echo "HMS_DEBUG_APK_PATH=$(find androidApp/build/outputs/apk/hms/debug -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
echo "FOSS_DEBUG_APK_PATH=$(find androidApp/build/outputs/apk/foss/debug -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
echo "GMS_RELEASE_APK_PATH=$(find androidApp/build/outputs/apk/gms/release -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
echo "HMS_RELEASE_APK_PATH=$(find androidApp/build/outputs/apk/hms/release -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
echo "FOSS_RELEASE_APK_PATH=$(find androidApp/build/outputs/apk/foss/release -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
echo "GMS_RELEASE_AAB_PATH=$(find androidApp/build/outputs/bundle/gmsRelease -name '*.aab' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV | |
- name: send android telegram message gms debug | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.GMS_DEBUG_APK_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
- name: send android telegram message hms debug | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.HMS_DEBUG_APK_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
- name: send android telegram message foss debug | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.FOSS_DEBUG_APK_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
- name: send android telegram message gms release | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.GMS_RELEASE_APK_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
- name: send android telegram message hms release | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.HMS_RELEASE_APK_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
- name: send android telegram message foss release | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.FOSS_RELEASE_APK_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
- name: send android telegram message gms release bundle | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F document="@${{ env.GMS_RELEASE_AAB_PATH }}" \ | |
-F caption="${{ env.MESSAGE }}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" | |
build-desktop: | |
needs: job-common | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
env: | |
SHORT_SHA: ${{ needs.job-common.outputs.SHORT_SHA }} | |
steps: | |
- name: checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: setup jdk 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: cache gradle dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-${{ runner.os }}-${{ hashFiles('/*.gradle*', '/gradle-wrapper.properties') }} | |
restore-keys: | | |
gradle-${{ runner.os }}- | |
- name: cache gradle wrapper | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
- name: assemble macos dmg artifact | |
run: ./gradlew :desktopApp:packageDmg | |
- name: upload binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
path: desktopApp/build/compose/binaries/main/** | |
- name: "upload .dmg" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: app-mac-silicon | |
path: desktopApp/build/compose/binaries/main/dmg/*.dmg | |
- name: find dmg file | |
run: find . -name "*.dmg" | |
- name: expose version name | |
id: version_name | |
run: | | |
VERSION_NAME=$(./gradlew desktopApp:printVersionName -q) | |
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV | |
- name: get dmg download URL | |
id: get_dmg_url | |
run: | | |
ARTIFACT_NAME="desktopApp-dmg" | |
RESPONSE=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
"${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/artifacts") | |
DMG_URL=$(echo "$RESPONSE" | jq -r ".artifacts[] | select(.name == \"$ARTIFACT_NAME\") | .archive_download_url") | |
echo "DMG_URL=$DMG_URL" >> $GITHUB_ENV | |
- name: send macos telegram message | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
THREAD_ID: ${{ secrets.TELEGRAM_THREAD_ID }} | |
MESSAGE: | | |
✅ <b>${{ env.VERSION_NAME }}</b> | |
<b>Ветка:</b> ${{ github.ref_name }} | |
<b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code> | |
<b><a href="${{ env.DMG_URL }}">Скачать DMG</a></b> | |
run: | | |
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ | |
-F chat_id="${CHAT_ID}" \ | |
-F text="${MESSAGE}" \ | |
-F message_thread_id="${THREAD_ID}" \ | |
-F parse_mode="HTML" |