Skip to content

Nightly APK Build

Nightly APK Build #24

Workflow file for this run

name: Nightly APK Build
on:
schedule:
- cron: "*/30 * * * *" # runs every 30 minutes
workflow_dispatch:
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "16"
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "17"
- name: Install Dependencies
run: npm install
- name: Decode Keystore
run: |
echo "${{ secrets.KEYSTORE }}" | base64 --decode > android/app/keystore.jks
mkdir android/app/app
echo "${{ secrets.KEYSTORE }}" | base64 --decode > android/app/app/keystore.jks
# Create local.properties file
- name: Create local.properties
env:
LOCAL_PROPERTIES: ${{ secrets.LOCAL_PROPERTIES }}
run: |
echo "$LOCAL_PROPERTIES" > android/gradle.local.properties
- name: Build Android APK
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASS }}
KEY_PASSWORD: ${{ secrets.KEYSTORE_PASS }}
run: |
npm run build:android:nightly
# Delete previous nightly releases using GitHub CLI
- name: Delete Previous Nightly Releases
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
echo "Listing and deleting previous nightly releases"
for tag in $(gh release list --exclude-drafts --limit 100 | awk 'tolower($0) ~ /nightly/ {print $1}'); do
echo "Deleting release: $tag"
gh release delete "$tag" -y
done
# Create a new nightly release and upload the generated APK
- name: Create Nightly Release
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
COMMIT_ID=$(git rev-parse --short HEAD)
RELEASE_TAG="${COMMIT_ID}-nightly"
RELEASE_NAME="${COMMIT_ID}-nightly"
ORIGINAL_APK="android/app/build/outputs/apk/nightly/release/app-nightly-release.apk"
RENAMED_APK="GrooveLauncher_${RELEASE_TAG}.apk"
cp "$ORIGINAL_APK" "$RENAMED_APK"
echo "Creating release with tag $RELEASE_TAG"
gh release create "$RELEASE_TAG" "$RENAMED_APK" \
--title "$RELEASE_NAME" \
--notes "Nightly build for $(date)" \
--prerelease