mirror of https://github.com/deniscerri/ytdlnis
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
8.3 KiB
YAML
225 lines
8.3 KiB
YAML
name: Android CI
|
|
|
|
env:
|
|
# The name of the main module repository
|
|
main_project_module: app
|
|
|
|
permissions:
|
|
contents: write # for deleting/creating a pre-release
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- 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 Debug
|
|
- name: Build apk debug project (APK)
|
|
run: ./gradlew assembleDebug
|
|
# Create APK Release
|
|
- name: Build apk release project (APK)
|
|
run: ./gradlew assemble
|
|
|
|
# Upload Artifact Build
|
|
# Noted For Output [main_project_module]/build/outputs/apk/debug/
|
|
- name: Find Debug arm64
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/debug/ -type f -name '*arm64*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Debug arm64
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-arm64-v8a-debug
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Debug armeabiv7
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/debug/ -type f -name '*armeabi*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Debug armeabiv7
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-armeabi-v7a-debug
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Debug universal
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/debug/ -type f -name '*universal*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Debug universal
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-universal-debug
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Debug x86
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/debug/ -type f -name '*x86-*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Debug x86
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-x86-debug
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Debug x86_64
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/debug/ -type f -name '*x86_64*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Debug x86_64
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-x86_64-debug
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
# Noted For Output [main_project_module]/build/outputs/apk/release/
|
|
- name: Find Release arm64
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/release/ -type f -name '*arm64*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Release arm64
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-arm64-v8a-release
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Release armeabiv7
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/release/ -type f -name '*armeabi*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Release armeabiv7
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-armeabi-v7a-release
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Release universal
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/release/ -type f -name '*universal*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Release universal
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-universal-release
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Release x86
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/release/ -type f -name '*x86-*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Release x86
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-x86-release
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
- name: Find Release x86_64
|
|
run: echo "APK_PATH=$(find ${{ env.main_project_module }}/build/outputs/apk/release/ -type f -name '*x86_64*.apk')" >> $GITHUB_ENV
|
|
|
|
- name: Upload APK Release x86_64
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ytdlnis-autogenerated-x86_64-release
|
|
path: ${{ env.APK_PATH }}
|
|
|
|
# Noted For Output [main_project_module]/build/outputs/apk/debug/
|
|
- name: Upload APK Debug
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: YTDLnis APK debug generated
|
|
path: ${{ env.main_project_module }}/build/outputs/apk/debug/
|
|
|
|
# Noted For Output [main_project_module]/build/outputs/apk/release/
|
|
- name: Upload APK Release
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: YTDLnis APK release generated
|
|
path: ${{ env.main_project_module }}/build/outputs/apk/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/*
|
|
# ${{ env.main_project_module }}/build/outputs/apk/debug/*
|
|
|