Skip to content

Bump activity-compose from 1.12.2 to 1.12.3 #206

Bump activity-compose from 1.12.2 to 1.12.3

Bump activity-compose from 1.12.2 to 1.12.3 #206

# Builds the project
name: Android Release CI
on:
push:
tags:
- '*.*.*.*'
jobs:
build:
name: Build, Sign & Release
if: "!startsWith(github.ref_name, 'nightly')"
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v6.0.2
with:
token: ${{ github.actor == 'dependabot[bot]' && secrets.GITHUB_TOKEN || secrets.GIT_BOT_TOKEN }}
fetch-depth: 0 # Fetch full history
- name: set up JDK 17
uses: actions/setup-java@v5.2.0
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Stop Gradle daemons
run: ./gradlew --stop
- name: Decode keystore
id: write_base64_file
shell: bash
run: |
echo "${{ secrets.SIGNINGKEY_BASE64 }}" > mLauncher.jks.tmp
base64 -d -i mLauncher.jks.tmp > mLauncher.jks
rm mLauncher.jks.tmp
mkdir -p app
mv mLauncher.jks app/
DESTINATION_FILE="app/mLauncher.jks"
echo "filePath=$DESTINATION_FILE" >> "$GITHUB_OUTPUT"
echo "Keystore written to $DESTINATION_FILE"
- name: Build with Gradle
run: ./gradlew clean assembleProdRelease bundleProdRelease --refresh-dependencies --no-daemon
env:
JAVA_TOOL_OPTIONS: "-Dhttps.protocols=TLSv1.2"
KEY_STORE_FILE: ${{ steps.write_base64_file.outputs.filePath }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Secure keystore cleanup
if: always()
shell: bash
run: |
shred -u app/mLauncher.jks || rm -f app/mLauncher.jks
- name: Detect build artifacts
id: detect_artifacts
shell: bash
run: |
set -e
APK=$(find app/build/outputs/apk -name "*.apk" -type f | head -n 1)
AAB=$(find app/build/outputs/bundle -name "*.aab" -type f | head -n 1)
MAPPING=$(find app/build/outputs/mapping -name "mapping.txt" -type f | head -n 1)
echo "Detected APK: $APK"
echo "Detected AAB: $AAB"
echo "Detected mapping: $MAPPING"
if [[ -z "$APK" || -z "$AAB" ]]; then
echo "❌ APK or AAB not found"
exit 1
fi
echo "apk=$APK" >> "$GITHUB_OUTPUT"
echo "aab=$AAB" >> "$GITHUB_OUTPUT"
echo "mapping=$MAPPING" >> "$GITHUB_OUTPUT"
- name: Release to GitHub
uses: svenstaro/upload-release-action@2.11.3
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ steps.detect_artifacts.outputs.apk }}
asset_name: MultiLauncher-${{ github.ref_name }}-Signed.apk
tag: ${{ github.ref }}
overwrite: true
- name: Upload ProGuard Mapping File
uses: svenstaro/upload-release-action@2.11.3
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ steps.detect_artifacts.outputs.mapping }}
asset_name: MultiLauncher-${{ github.ref_name }}-mapping.txt
tag: ${{ github.ref }}
overwrite: true
- name: Release to GitHub
uses: svenstaro/upload-release-action@2.11.3
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ steps.detect_artifacts.outputs.aab }}
asset_name: MultiLauncher-${{ github.ref_name }}-Signed.aab
tag: ${{ github.ref }}
overwrite: true
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '20' # or whatever version you need
- name: Post Release to Discord
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
DISCORD_ROLEID: ${{ secrets.DISCORD_ROLEID }}
run: |
# Run your Discord release script
node post-discord-release.js