@ -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 }}