mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-18 08:56:41 +00:00
Bumps the github-actions-minor group with 3 updates: [actions/cache](https://github.com/actions/cache), [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) and [github/codeql-action](https://github.com/github/codeql-action). Updates `actions/cache` from 5.0.3 to 5.0.4 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](cdf6c1fa76...668228422a) Updates `anthropics/claude-code-action` from 1.0.72 to 1.0.76 - [Release notes](https://github.com/anthropics/claude-code-action/releases) - [Commits](cd77b50d2b...6062f37096) Updates `github/codeql-action` from 4.32.6 to 4.34.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](0d579ffd05...3869755554) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 5.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions-minor - dependency-name: anthropics/claude-code-action dependency-version: 1.0.76 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions-minor - dependency-name: github/codeql-action dependency-version: 4.34.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
127 lines
4.8 KiB
YAML
127 lines
4.8 KiB
YAML
name: Create android Play Store APK
|
|
on:
|
|
push:
|
|
branches: [master, release/*, test/git-actions]
|
|
tags:
|
|
- v*
|
|
workflow_dispatch:
|
|
inputs: {}
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build-android:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }}
|
|
UNSPLASH_CLIENT_ID: ${{ secrets.UNSPLASH_CLIENT_ID }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
|
with:
|
|
node-version: 22
|
|
- name: Setup Java
|
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
with:
|
|
distribution: 'temurin'
|
|
java-version: 21
|
|
- name: Setup Gradle
|
|
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
|
# - name: Build with Gradle
|
|
# run: ./gradlew build
|
|
- name: Setup android-sdk
|
|
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3
|
|
with:
|
|
accept-android-sdk-licenses: true
|
|
log-accepted-android-sdk-licenses: true #make accepting the android sdk license verbose
|
|
|
|
- name: Get npm cache directory
|
|
id: npm-cache-dir
|
|
run: |
|
|
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
|
|
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
|
|
id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true'
|
|
with:
|
|
path: ${{ steps.npm-cache-dir.outputs.dir }}
|
|
key: ${{ runner.os }}-node22-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node22-
|
|
- name: Install npm Packages
|
|
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
|
run: npm i
|
|
|
|
- name: Decode Keystore
|
|
env:
|
|
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.DROID_KEYSTORE_PASSWORD }}
|
|
RELEASE_KEYSTORE_ALIAS: ${{ secrets.DROID_KEYSTORE_ALIAS }}
|
|
RELEASE_KEY_PASSWORD: ${{ secrets.DROID_KEY_PASSWORD }}
|
|
run: |
|
|
echo "${{ secrets.DROID_KEYSTORE_BASE_64 }}" | base64 --decode > keystore.jks
|
|
|
|
- name: Build
|
|
run: npm run dist:android:prod
|
|
env:
|
|
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.DROID_KEYSTORE_PASSWORD }}
|
|
RELEASE_KEYSTORE_ALIAS: ${{ secrets.DROID_KEYSTORE_ALIAS }}
|
|
RELEASE_KEY_PASSWORD: ${{ secrets.DROID_KEY_PASSWORD }}
|
|
|
|
- name: DEBUG
|
|
run: |
|
|
ls -la android/app/build/outputs
|
|
ls -la android/app/build/outputs/apk
|
|
ls -la android/app/build/outputs/apk/play
|
|
ls -la android/app/build/outputs/apk/play/release
|
|
|
|
# APK is now signed automatically by Gradle using signingConfig
|
|
|
|
- name: 'Upload APK files'
|
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
with:
|
|
name: sup-android-release
|
|
path: android/app/build/outputs/apk/**/*.apk
|
|
|
|
- name: Wait for main release to be created
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
run: |
|
|
echo "Waiting for main release to be created..."
|
|
for i in {1..40}; do
|
|
if gh release view ${{ github.ref_name }} --repo ${{ github.repository }} >/dev/null 2>&1; then
|
|
echo "Release found!"
|
|
break
|
|
fi
|
|
echo "Waiting for release... (attempt $i/40)"
|
|
sleep 30
|
|
done
|
|
|
|
# Fail if release still doesn't exist
|
|
if ! gh release view ${{ github.ref_name }} --repo ${{ github.repository }} >/dev/null 2>&1; then
|
|
echo "ERROR: Release ${{ github.ref_name }} was not created after 20 minutes"
|
|
exit 1
|
|
fi
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Upload APK to existing GitHub Release
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
run: |
|
|
for apk in android/app/build/outputs/apk/play/release/*.apk; do
|
|
if [ -f "$apk" ]; then
|
|
echo "Uploading $apk to release ${{ github.ref_name }}"
|
|
gh release upload ${{ github.ref_name }} "$apk" --repo ${{ github.repository }}
|
|
fi
|
|
done
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Upload to Google Play Console
|
|
if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-')
|
|
uses: r0adkll/upload-google-play@935ef9c68bb393a8e6116b1575626a7f5be3a7fb # v1.1.3
|
|
with:
|
|
serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }}
|
|
packageName: com.superproductivity.superproductivity
|
|
releaseFiles: android/app/build/outputs/apk/play/release/*.apk
|
|
track: internal
|
|
status: completed
|
|
inAppUpdatePriority: 2
|