resource in 1 place #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- v* | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
android: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Generate build number | |
shell: bash | |
run: echo "ORG_GRADLE_PROJECT_ACCOUNTBOOK_VERSIONCODE=$(( (GITHUB_RUN_NUMBER * 2) + 10000 ))" >> $GITHUB_ENV | |
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 21 | |
- uses: gradle/actions/setup-gradle@v3 | |
with: | |
cache-disabled: true | |
- name: Build Android App (skipping benchmark variant) | |
run: | | |
./gradlew check \ | |
:android-app:app:assemble \ | |
:android-app:app:bundle \ | |
-x assembleNonMinifiedRelease \ | |
-x bundleNonMinifiedRelease \ | |
-Pandroidx.baselineprofile.skipgeneration=true \ | |
--no-configuration-cache | |
- name: Upload build outputs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-build-outputs | |
path: android-app/app/build/outputs | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-test-results | |
path: | | |
**/build/test-results/* | |
desktop: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v3 | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 21 | |
- uses: gradle/actions/setup-gradle@v3 | |
with: | |
cache-disabled: true | |
- name: Build Desktop App | |
run: ./gradlew jvmTest :desktop-app:packageDistributionForCurrentOS | |
- name: Upload build outputs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: desktop-build-binaries | |
path: desktop-app/build/compose/binaries | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: desktop-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: desktop-test-results | |
path: | | |
**/build/test-results/* | |
ios-qa-app: | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '15.2' | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 21 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- run: brew install swiftlint | |
- uses: gradle/actions/setup-gradle@v3 | |
with: | |
cache-disabled: true | |
- name: Decrypt secrets | |
run: ./release/decrypt-secrets.sh | |
env: | |
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} | |
- name: Run Fastlane Lint lane | |
run: bundle exec fastlane ios lint | |
- name: Build iOS application | |
run: bundle exec fastlane ios build_qa | |
- name: Upload build outputs | |
if: always() | |
continue-on-error: true | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios-qa-build-outputs | |
path: | | |
*.ipa | |
*.dSYM.zip | |
- name: Upload build logs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios-qa-logs | |
path: | | |
**/fastlane-buildlog | |
ios-test: | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '15.2' | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 21 | |
- uses: gradle/actions/setup-gradle@v3 | |
with: | |
cache-disabled: true | |
- name: iOS tests | |
# Disable CC due to https://github.com/google/ksp/issues/1463 | |
run: ./gradlew iosSimulatorArm64Test --no-configuration-cache | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios-test-results | |
path: | | |
**/build/test-results/* |