name: Android Release on: push: branches: - master jobs: release: runs-on: ubuntu-latest steps: - name: Checkout uses: https://git.daemonlord.ru/actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK 17 uses: https://git.daemonlord.ru/actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: Extract versionName run: | VERSION=$(grep -oP 'versionName\s+"[^"]+"' app/build.gradle | cut -d'"' -f2) echo $VERSION > version.txt echo "Detected version: $VERSION" - name: Check if tag exists run: | VERSION=$(cat version.txt) if git rev-parse "$VERSION" >/dev/null 2>&1; then echo "exists=true" > tag_exists.txt else echo "exists=false" > tag_exists.txt fi - name: Stop if version already released run: | EXISTS=$(cat tag_exists.txt) if [ "$EXISTS" = "true" ]; then echo "Version already released, skipping." exit 0 fi - name: Decode keystore run: | mkdir -p app echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > app/release.keystore - name: Make Gradlew executable run: chmod +x ./gradlew - name: Set up Android SDK run: | mkdir -p $HOME/Android/sdk/cmdline-tools wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O cmdline-tools.zip unzip cmdline-tools.zip -d $HOME/Android/sdk/cmdline-tools mv $HOME/Android/sdk/cmdline-tools/cmdline-tools $HOME/Android/sdk/cmdline-tools/latest export ANDROID_SDK_ROOT=$HOME/Android/sdk export PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools:$PATH yes | sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platform-tools" "platforms;android-36" "build-tools;36.0.0" echo "ANDROID_SDK_ROOT=$HOME/Android/sdk" >> $GITHUB_ENV echo "PATH=$HOME/Android/sdk/cmdline-tools/latest/bin:$HOME/Android/sdk/platform-tools:$PATH" >> $GITHUB_ENV - name: Build Release APK env: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} run: | VERSION=$(cat version.txt) ./gradlew assembleRelease \ -Pandroid.injected.signing.store.file=app/release.keystore \ -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \ -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ -Pandroid.injected.signing.key.password=$KEY_PASSWORD - name: Create git tag run: | VERSION=$(cat version.txt) git tag $VERSION git push origin $VERSION - name: Create Gitea Release uses: https://git.daemonlord.ru/actions/gitea-release-action@v1 with: server_url: https://git.daemonlord.ru repository: ${{ gitea.repository }} token: ${{ secrets.API_TOKEN }} tag_name: $(cat version.txt) name: Release $(cat version.txt) body: | Android release $(cat version.txt) files: | app/build/outputs/apk/release/*.apk