Skip to content

resource in 1 place (#4) #2

resource in 1 place (#4)

resource in 1 place (#4) #2

Workflow file for this run

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/*