diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e0b1b06f..bc662528 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,7 +1,6 @@ name: Android CI env: - # The name of the main module repository main_project_module: app permissions: {} @@ -16,200 +15,149 @@ jobs: runs-on: ubuntu-latest permissions: contents: read - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: 'corretto' - cache: 'gradle' - - - name: Create base64 jks file - run: echo "${{ secrets.BASE_64_SIGNING_KEY }}" > app/release_keystore.txt - - name: Create jks file - run: base64 -d "app/release_keystore.txt" > app/release_keystore.jks - - name: Create Blank Local Properties File - run: touch local.properties - - name: Create Keystore Properties File - run: echo "${{ secrets.LOCAL_PROPERTIES }}" > keystore.properties - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Set current date as env variable - run: echo "date_today=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - - # Create APK Github Release - - name: Build apk release project (APK) - run: ./gradlew assembleGithubRelease --warning-mode all - - # Upload Artifact Build - - name: Find Release Github arm64 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/github/release/ -type f -name '*arm64*.apk')" >> $GITHUB_ENV - - name: Upload APK Release Github arm64 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-arm64-v8a-github-release - path: ${{ env.APK_PATH }} - - - name: Find Release Github armeabiv7 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/github/release/ -type f -name '*armeabi*.apk')" >> $GITHUB_ENV - - name: Upload APK Release Github armeabiv7 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-armeabi-v7a-github-release - path: ${{ env.APK_PATH }} - - - name: Find Release Github universal - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/github/release/ -type f -name '*universal*.apk')" >> $GITHUB_ENV - - name: Upload APK Release Github universal - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-universal-github-release - path: ${{ env.APK_PATH }} - - - name: Find Release Github x86 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/github/release/ -type f -name '*x86-*.apk')" >> $GITHUB_ENV - - name: Upload APK Release Github x86 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-x86-github-release - path: ${{ env.APK_PATH }} - - - name: Find Release Github x86_64 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/github/release/ -type f -name '*x86_64*.apk')" >> $GITHUB_ENV - - name: Upload APK Release Github x86_64 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-x86_64-github-release - path: ${{ env.APK_PATH }} - - # Noted For Output [main_project_module]/build/outputs/apk/github/release/ - - name: Upload APK Release - uses: actions/upload-artifact@v4 - with: - name: YTDLnis APK release github generated - path: ${{ env.main_project_module }}/build/outputs/apk/github/release/ - - # Create APK FOSS Release - - name: Build apk release project (APK) - run: ./gradlew assembleFossRelease --warning-mode all - - - name: Find Release FOSS arm64 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/foss/release/ -type f -name '*arm64*.apk')" >> $GITHUB_ENV - - name: Upload APK Release FOSS arm64 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-arm64-v8a-foss-release - path: ${{ env.APK_PATH }} - - - name: Find Release FOSS armeabiv7 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/foss/release/ -type f -name '*armeabi*.apk')" >> $GITHUB_ENV - - name: Upload APK Release FOSS armeabiv7 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-armeabi-v7a-foss-release - path: ${{ env.APK_PATH }} - - - name: Find Release FOSS universal - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/foss/release/ -type f -name '*universal*.apk')" >> $GITHUB_ENV - - name: Upload APK Release FOSS universal - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-universal-foss-release - path: ${{ env.APK_PATH }} - - - name: Find Release FOSS x86 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/foss/release/ -type f -name '*x86-*.apk')" >> $GITHUB_ENV - - name: Upload APK Release FOSS x86 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-x86-foss-release - path: ${{ env.APK_PATH }} - - - name: Find Release FOSS x86_64 - run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/foss/release/ -type f -name '*x86_64*.apk')" >> $GITHUB_ENV - - name: Upload APK Release FOSS x86_64 - uses: actions/upload-artifact@v4 - with: - name: ytdlnis-autogenerated-x86_64-foss-release - path: ${{ env.APK_PATH }} - - - name: Upload APK Release - uses: actions/upload-artifact@v4 - with: - name: YTDLnis APK release FOSS generated - path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/ - - # Send Message To Telegram - - name: send telegram message on push or pull - continue-on-error: true - uses: appleboy/telegram-action@master - with: - to: ${{ secrets.TELEGRAM_TO }} - token: ${{ secrets.TELEGRAM_TOKEN }} - message: | - ${{ github.actor }} created commit: - Commit message: ${{ github.event.commits[0].message }} - Repository: ${{ github.repository }} - See changes: https://github.com/${{ github.repository }}/commit/${{github.sha}} - -# # Start Creating Pre-Release -# - name: Start Pre-Release -# uses: actions/checkout@v4 -# with: -# persist-credentials: false -# # returns null if no pre-release exists -# - name: Get Commit SHA of Latest Pre-release -# run: | -# # Install Required Packages -# sudo apt-get updated -# sudo apt-get install -y curl jq -# echo "COMMIT_SHA_TAG=$(jq -r 'map(select(.prerelease)) | first | .tag_name' <<< $(curl -s https://api.github.com/repos/deniscerri/ytdlnis/releases))" >> $GITHUB_ENV -# -# - run: gh release delete ${{ env.COMMIT_SHA_TAG }} --cleanup-tag -# if: (env.COMMIT_SHA_TAG != 'null' && contains('Auto-Release', env.COMMIT_SHA_TAG)) -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# -# # Make sure that an old ci that still runs on main doesn't recreate a prerelease -# - name: Check Pullable Commits -# id: check_commits -# run: | -# git fetch -# CHANGES=$(git rev-list HEAD..origin/main --count) -# echo "CHANGES=$CHANGES" >> $GITHUB_ENV -# -# - name: Get Release Name -# id: get_last_release_tag -# run: | -# LASTRELEASE=$(curl "https://api.github.com/repos/deniscerri/ytdlnis/releases/latest") -# ISPRERELEASE=$(echo $LASTRELEASE | jq -r '.prerelease') -# NEWRELEASENAME=$(echo $LASTRELEASE | jq -r '.name') -# if ! $ISPRERELEASE; then NEWRELEASENAME=$(echo $NEWRELEASENAME'.1'); else NEWRELEASENAME=$(echo $NEWRELEASENAME | sed -E 's/(.*\.)([0-9]+)$/echo "\1$((\2 + 1))"/e'); fi -# echo "NEWRELEASENAME=$NEWRELEASENAME" >> $GITHUB_ENV -# -# - name: Get last commit SHA -# id: last_commit -# run: echo "COMMIT_SHA=$(git rev-parse HEAD | cut -c 1-8)" >> $GITHUB_ENV -# -# - name: Get commmit date -# id: commit_date -# run: echo "COMMIT_DATE=$(git show -s --date=format:'%Y%m%d' --format=%cd HEAD)" >> $GITHUB_ENV -# -# -# # Create a new pre-release, the other upload_binaries.yml will upload the binaries -# # to this pre-release. -# - name: Create Prerelease -# if: github.ref.name == 'main' && env.CHANGES == '0' -# uses: softprops/action-gh-release@4634c16e79c963813287e889244c50009e7f0981 -# with: -# name: ${{ env.NEWRELEASENAME }} [Auto-Release] [${{ env.COMMIT_DATE }}-${{ env.COMMIT_SHA }}] -# tag_name: v${{ env.NEWRELEASENAME }}-beta -# body: ${{ github.event.commits[0].message }} -# prerelease: true -# files: | -# ${{ env.main_project_module }}/build/outputs/apk/release/* + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: 'corretto' + cache: 'gradle' + + - name: Configure Keystore & Properties + run: | + echo "${{ secrets.BASE_64_SIGNING_KEY }}" | base64 -d > app/release_keystore.jks + touch local.properties + echo "${{ secrets.LOCAL_PROPERTIES }}" > keystore.properties + chmod +x gradlew + + - name: Build APK release projects + run: ./gradlew assembleGithubRelease assembleFossRelease assembleIzzyRelease --warning-mode all + + # --- GITHUB FLAVOR --- + - name: Upload GitHub arm64 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-arm64-v8a-release + path: ${{ env.main_project_module }}/build/outputs/apk/github/release/*arm64*.apk + + - name: Upload GitHub armeabiv7 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-armeabi-v7a-release + path: ${{ env.main_project_module }}/build/outputs/apk/github/release/*armeabi*.apk + + - name: Upload GitHub universal + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-universal-release + path: ${{ env.main_project_module }}/build/outputs/apk/github/release/*universal*.apk + + - name: Upload GitHub x86 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-x86-release + path: ${{ env.main_project_module }}/build/outputs/apk/github/release/*x86-*.apk + + - name: Upload GitHub x86_64 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-x86_64-release + path: ${{ env.main_project_module }}/build/outputs/apk/github/release/*x86_64*.apk + + - name: Upload Full Github Folder + uses: actions/upload-artifact@v4 + with: + name: YTDLnis APK release generated + path: ${{ env.main_project_module }}/build/outputs/apk/github/release/ + + # --- FOSS FLAVOR --- + - name: Upload FOSS arm64 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-arm64-v8a-foss-release + path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/*arm64*.apk + + - name: Upload FOSS armeabiv7 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-armeabi-v7a-foss-release + path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/*armeabi*.apk + + - name: Upload FOSS universal + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-universal-foss-release + path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/*universal*.apk + + - name: Upload FOSS x86 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-x86-foss-release + path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/*x86-*.apk + + - name: Upload FOSS x86_64 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-x86_64-foss-release + path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/*x86_64*.apk + + - name: Upload Full FOSS Folder + uses: actions/upload-artifact@v4 + with: + name: YTDLnis APK release FOSS generated + path: ${{ env.main_project_module }}/build/outputs/apk/foss/release/ + + # --- IZZY FLAVOR --- + - name: Upload Izzy arm64 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-arm64-v8a-izzy-release + path: ${{ env.main_project_module }}/build/outputs/apk/izzy/release/*arm64*.apk + + - name: Upload Izzy armeabiv7 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-armeabi-v7a-izzy-release + path: ${{ env.main_project_module }}/build/outputs/apk/izzy/release/*armeabi*.apk + + - name: Upload Izzy universal + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-universal-izzy-release + path: ${{ env.main_project_module }}/build/outputs/apk/izzy/release/*universal*.apk + + - name: Upload Izzy x86 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-x86-izzy-release + path: ${{ env.main_project_module }}/build/outputs/apk/izzy/release/*x86-*.apk + + - name: Upload Izzy x86_64 + uses: actions/upload-artifact@v4 + with: + name: ytdlnis-autogenerated-x86_64-izzy-release + path: ${{ env.main_project_module }}/build/outputs/apk/izzy/release/*x86_64*.apk + + - name: Upload Full Izzy Folder + uses: actions/upload-artifact@v4 + with: + name: YTDLnis APK release Izzy generated + path: ${{ env.main_project_module }}/build/outputs/apk/izzy/release/ + + # --- TELEGRAM --- + - name: Send Telegram Message + continue-on-error: true + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_TO }} + token: ${{ secrets.TELEGRAM_TOKEN }} + message: | + ${{ github.actor }} created commit: + Commit message: ${{ github.event.commits[0].message }} + Repository: ${{ github.repository }} + See changes: https://github.com/${{ github.repository }}/commit/${{ github.sha }} \ No newline at end of file