Agent Session [2025-01-09]: Document TIER 1 CI compilation errors as … #85
This file contains hidden or 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: 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" |