Skip to content

Merge pull request #516 from 07jasjeet/main #29

Merge pull request #516 from 07jasjeet/main

Merge pull request #516 from 07jasjeet/main #29

Workflow file for this run

name: Build & Publish Release APK
on:
workflow_dispatch:
push:
tags:
- '*'
jobs:
Gradle:
runs-on: ubuntu-latest
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup jdk
uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: 17
cache: gradle
- name: Make Gradle executable
run: chmod +x ./gradlew
- name: Configure Keystore
run: |
echo "$ANDROID_KEYSTORE_FILE" > keystore.jks.b64
base64 -d -i keystore.jks.b64 > app/keystore.jks
echo "storeFile=keystore.jks" >> keystore.properties
echo "keyAlias=$KEYSTORE_KEY_ALIAS" >> keystore.properties
echo "storePassword=$KEYSTORE_STORE_PASSWORD" >> keystore.properties
echo "keyPassword=$KEYSTORE_KEY_PASSWORD" >> keystore.properties
echo "sentryDsn=$SENTRY_DSN" >> keystore.properties
echo "youtubeApiKey=$YOUTUBE_API_KEY" >> keystore.properties
echo "spotifyClientId=$SPOTIFY_CLIENT_ID" >> keystore.properties
env:
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
SPOTIFY_CLIENT_ID: ${{ secrets.SPOTIFY_CLIENT_ID }}
- name: Cache Gradle dependencies
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
restore-keys: ${{ runner.os }}-gradle-
- name: Build APK
run: ./gradlew assembleRelease
- name: Find release tag name
id: find_release
uses: actions/github-script@v7
with:
script: |
const { owner, repo } = context.repo;
const releases = await github.rest.repos.listReleases({ owner, repo });
const latestRelease = releases.data[0];
return { tag_name: latestRelease.tag_name };
- name: Attach APK
uses: actions/upload-artifact@v4
with:
name: ListenBrainz
path: app/build/outputs/apk/release/app-release.apk
if: github.ref == ('refs/tags/${{ steps.find_release.outputs.tag_name }}')