Skip to content

Agent Session [2025-01-09]: Document TIER 1 CI compilation errors as … #85

Agent Session [2025-01-09]: Document TIER 1 CI compilation errors as …

Agent Session [2025-01-09]: Document TIER 1 CI compilation errors as … #85

Workflow file for this run

name: Cross-Platform CI
on:
push:
branches:
- '**'
pull_request:
branches:
- main
- master
- develop
- 'refactor/**'
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g"
JAVA_TOOL_OPTIONS: "-Xmx4g"
jobs:
# Shared validation across platforms
validate:
name: Validate Gradle
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Validate Gradle Wrapper
run: ./gradlew --version
- name: Gradle Help
run: ./gradlew help --no-daemon --stacktrace
# Cross-platform Android build
android-build:
name: Android Build
runs-on: ubuntu-latest
needs: validate
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
./.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Cache Android SDK
uses: actions/cache@v4
with:
path: ~/.android
key: android-sdk-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
android-sdk-
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Android SDK Licenses
run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
- name: Build Android Modules
run: ./gradlew :core:assembleDebug :data:assembleDebug :features:recorder:assembleDebug :SaidIt:assembleDebug :domain:build --no-daemon --stacktrace --parallel
# Cross-platform testing
test:
name: Unit Tests
runs-on: ubuntu-latest
needs: validate
strategy:
matrix:
module: [domain, core, data, features:recorder, SaidIt]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
./.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Android SDK Licenses
run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
- name: Run ${{ matrix.module }} Tests
run: ./gradlew :${{ matrix.module }}:test --no-daemon --stacktrace
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results-${{ matrix.module == 'features:recorder' && 'features-recorder' || matrix.module }}
path: "**/build/reports/tests/"
# Lint job for code quality
lint:
name: Android Lint
runs-on: ubuntu-latest
needs: validate
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
./.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Android SDK Licenses
run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
- name: Run Android Lint
run: ./gradlew :SaidIt:lint :core:lint :data:lint :features:recorder:lint --no-daemon --stacktrace
- name: Upload Lint Results
uses: actions/upload-artifact@v4
if: always()
with:
name: lint-results
path: "**/build/reports/lint-results*.html"