Skip to content

refactor: reorganize categorization settings with subpage navigation #81

refactor: reorganize categorization settings with subpage navigation

refactor: reorganize categorization settings with subpage navigation #81

Workflow file for this run

name: CI
on:
push:
branches:
- '*-dev'
paths-ignore:
- '.idea/**'
- '.gitattributes'
- '.github/**.json'
- '.gitignore'
- '.gitmodules'
- '**.md'
- 'LICENSE'
- 'NOTICE'
pull_request:
paths-ignore:
- '.idea/**'
- '.gitattributes'
- '.github/**.json'
- '.gitignore'
- '.gitmodules'
- '**.md'
- 'LICENSE'
- 'NOTICE'
workflow_dispatch:
workflow_call:
jobs:
build-debug-apk:
permissions:
contents: read
runs-on: ubuntu-latest
continue-on-error: true
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 1
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-ccache
max-size: 2G
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v5
with:
cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
cache-read-only: ${{ github.ref != 'refs/heads/15-dev' }}
- name: Write sign info
run: |
if [ ! -z "${{ secrets.KEYSTORE }}" ]; then
echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> keystore.properties
echo keyAlias='${{ secrets.KEY_ALIAS }}' >> keystore.properties
echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> keystore.properties
echo storeFile='${{ github.workspace }}/key.jks' >> keystore.properties
echo "${{ secrets.KEYSTORE }}" | base64 --decode > ${{ github.workspace }}/key.jks
fi
- name: Build debug APK
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
./gradlew assembleLawnWithQuickstepGithubDebug --parallel --build-cache
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
- name: Upload artifact
uses: actions/upload-artifact@v5
with:
name: Debug APK
path: build/outputs/apk/**/*.apk
check-style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: true
- run: ./gradlew spotlessCheck --no-configuration-cache
autocat-release:
runs-on: ubuntu-latest
if: github.repository_owner == 'thejaustin' && github.event_name == 'push' && github.ref == 'refs/heads/15-dev'
needs: build-debug-apk
permissions:
contents: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 10
submodules: false
- uses: actions/download-artifact@v6
with:
name: Debug APK
path: apk-artifacts
- name: Prepare APK and version info
run: |
# Find the GitHub debug APK (installable variant)
APK_FILE=$(find apk-artifacts -name "*GithubDebug.apk" | head -1)
if [ -z "$APK_FILE" ]; then
echo "No GitHub Debug APK found, trying any debug APK"
APK_FILE=$(find apk-artifacts -name "*debug.apk" | head -1)
fi
# Version info
SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)
VERSION_TAG="v15.0.b1-autocat.${{ github.run_number }}"
APK_NAME="AutoCat-${VERSION_TAG}-${SHORT_SHA}.apk"
DEV_APK_NAME="AutoCat-dev-latest.apk"
# Copy APK with versioned name
cp "$APK_FILE" "./$APK_NAME"
cp "$APK_FILE" "./$DEV_APK_NAME"
# Export variables
echo "APK_NAME=$APK_NAME" >> $GITHUB_ENV
echo "DEV_APK_NAME=$DEV_APK_NAME" >> $GITHUB_ENV
echo "SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV
echo "VERSION_TAG=$VERSION_TAG" >> $GITHUB_ENV
- name: Create versioned release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Create permanent versioned release
gh release create "$VERSION_TAG" "./$APK_NAME" \
--title "AutoCat $VERSION_TAG" \
--notes "**AutoCat Build #${{ github.run_number }}**
### Version Info
- **Version**: $VERSION_TAG
- **Commit**: [\`$SHORT_SHA\`](https://github.com/${{ github.repository }}/commit/${{ github.sha }})
- **Branch**: ${{ github.ref_name }}
- **Build Date**: $(date -u +'%Y-%m-%d %H:%M UTC')
### Installation
1. Download \`$APK_NAME\` below
2. Enable 'Install from Unknown Sources' in Android settings
3. Install the APK
### Changes in this build
$(git log -1 --pretty=format:'**%s**%n%n%b')
### What's in AutoCat $VERSION_TAG
- **Base**: Lawnchair 15.0 Beta 1 (b1)
- **Features**: Room database foundation for app categorization
- **Infrastructure**: Development logs system, versioning
---
📥 **[Download Latest](https://github.com/${{ github.repository }}/releases/tag/dev-latest)** | 📝 **[All Releases](https://github.com/${{ github.repository }}/releases)**"
- name: Update dev-latest rolling release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Delete old dev-latest
gh release view "dev-latest" && gh release delete "dev-latest" -y --cleanup-tag || true
# Create new dev-latest pointing to same build
gh release create "dev-latest" "./$DEV_APK_NAME" \
--prerelease \
--title "AutoCat Development Build (Latest)" \
--notes "**🔄 Rolling release - Always points to latest build**
Current version: **$VERSION_TAG** from commit [\`$SHORT_SHA\`](https://github.com/${{ github.repository }}/commit/${{ github.sha }})
### Quick Install
1. Download \`$DEV_APK_NAME\` below
2. Install on your Android device
3. Test and report issues
### This Build
- **Build**: #${{ github.run_number }}
- **Date**: $(date -u +'%Y-%m-%d %H:%M UTC')
$(git log -1 --pretty=format:'**Changes**: %s')
---
💡 **Want a specific version?** See [all versioned releases](https://github.com/${{ github.repository }}/releases)
⚠️ **Development Build** - For testing only"