Skip to content

feat: add Beta/Experimental settings section (R604) #657

feat: add Beta/Experimental settings section (R604)

feat: add Beta/Experimental settings section (R604) #657

name: PR build check
on:
pull_request:
paths:
- '**'
- '!i18n/src/commonMain/moko-resources/**/strings-aniyomi.xml'
- '!i18n/src/commonMain/moko-resources/**/strings.xml'
- '!i18n/src/commonMain/moko-resources/**/plurals-aniyomi.xml'
- '!i18n/src/commonMain/moko-resources/**/plurals.xml'
- 'i18n/src/commonMain/moko-resources/base/strings-aniyomi.xml'
- 'i18n/src/commonMain/moko-resources/base/strings.xml'
- 'i18n/src/commonMain/moko-resources/base/plurals-aniyomi.xml'
- 'i18n/src/commonMain/moko-resources/base/plurals.xml'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: read
env:
# Temporary: remove this bootstrap and mavenLocal wiring once a released SqlDelight version includes AGP 9 compatibility.
SQLDELIGHT_AGP9_FIX_SHA: c8f6011c014368544c71f5e490ef0409bb2f4705
jobs:
prepare_sqldelight:
name: Prepare SqlDelight artifacts
runs-on: 'ubuntu-24.04'
steps:
- name: Restore SqlDelight local Maven cache
id: sqldelight-cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.2.3
with:
path: ~/.m2/repository/app/cash
key: sqldelight-m2-${{ env.SQLDELIGHT_AGP9_FIX_SHA }}
- name: Set up JDK
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
java-version: 17
distribution: temurin
- name: Build SqlDelight AGP 9 fix
if: steps.sqldelight-cache.outputs.cache-hit != 'true'
run: |
set -euxo pipefail
git clone --filter=blob:none https://github.com/cashapp/sqldelight.git /tmp/sqldelight
cd /tmp/sqldelight
git checkout --detach "$SQLDELIGHT_AGP9_FIX_SHA"
./gradlew publishToMavenLocal -x test --no-daemon
- name: Upload SqlDelight local Maven artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: sqldelight-m2-${{ env.SQLDELIGHT_AGP9_FIX_SHA }}
path: ~/.m2/repository/app/cash
spotless:
name: Check code format
runs-on: 'ubuntu-24.04'
needs: prepare_sqldelight
steps:
- name: Clone repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up JDK
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
java-version: 17
distribution: temurin
- name: Set up gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
- name: Download SqlDelight local Maven artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: sqldelight-m2-${{ env.SQLDELIGHT_AGP9_FIX_SHA }}
path: ~/.m2/repository/app/cash
- name: Check code format
run: ./gradlew spotlessCheck
build:
name: Build app
runs-on: 'ubuntu-24.04'
needs: prepare_sqldelight
steps:
- name: Clone repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Dependency Review
if: github.repository == 'aniyomiorg/aniyomi'
uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0
- name: Set up JDK
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
java-version: 17
distribution: temurin
- name: Set up gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
with:
cache-read-only: false
- name: Download SqlDelight local Maven artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: sqldelight-m2-${{ env.SQLDELIGHT_AGP9_FIX_SHA }}
path: ~/.m2/repository/app/cash
- name: Build app
run: ./gradlew assembleRelease --build-cache
- name: Upload APK
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: arm64-v8a-${{ github.sha }}
path: app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk
- name: Upload mapping
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: mapping-${{ github.sha }}
path: app/build/outputs/mapping/release
test:
name: Run unit tests
runs-on: 'ubuntu-24.04'
needs: prepare_sqldelight
steps:
- name: Clone repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up JDK
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
java-version: 17
distribution: temurin
- name: Set up gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
with:
cache-read-only: false
- name: Download SqlDelight local Maven artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: sqldelight-m2-${{ env.SQLDELIGHT_AGP9_FIX_SHA }}
path: ~/.m2/repository/app/cash
- name: Run unit tests
run: ./gradlew :app:testDebugUnitTest --build-cache