F-101: close target() deps API audit + docs #653
Workflow file for this run
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
| # Forma CI — plugins, sample app, and adjacent tooling. | |
| # F-018: pin JDK 21 on every job (Gradle 8.7+); install Android SDK for the sample app. | |
| # App bytecode / jvmTarget stays at project settings (not raised with the daemon JDK). | |
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build_plugins: | |
| name: Plugins | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Build plugins | |
| working-directory: plugins | |
| # `build` → `check` → jacocoHappyPathCoverageVerification (LINE ≥60% happy-path). | |
| # Reports: build/reports/jacoco/jacocoHappyPathReport/ | |
| run: ./gradlew build --stacktrace --console=plain | |
| build_includer: | |
| name: Includer | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Build includer | |
| working-directory: includer | |
| run: ./gradlew build --stacktrace --console=plain | |
| build_depgen: | |
| name: Depgen | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Build depgen | |
| working-directory: depgen | |
| run: ./gradlew build --stacktrace --console=plain | |
| build_application: | |
| name: Application | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| # Sample app: compileSdk/targetSdk 37 (F-087 AndroidX ceiling; core 1.19), minSdk 23. | |
| # setup-android accepts licenses, installs cmdline-tools + listed packages, | |
| # and exports ANDROID_HOME / ANDROID_SDK_ROOT for AGP. | |
| - name: Set up Android SDK | |
| uses: android-actions/setup-android@v3 | |
| with: | |
| # Space-separated sdkmanager package ids (semicolons inside package names). | |
| # API 37 package id is platforms;android-37.0 (not platforms;android-37). | |
| packages: "platform-tools platforms;android-37.0 platforms;android-36 platforms;android-35 build-tools;37.0.0 build-tools;36.0.0 build-tools;35.0.0" | |
| - name: Symlink android-37 platform dir for AGP | |
| # AGP resolves compileSdk=37 as $ANDROID_HOME/platforms/android-37 | |
| run: | | |
| set -euo pipefail | |
| sdk="${ANDROID_HOME:-${ANDROID_SDK_ROOT:-}}" | |
| test -n "$sdk" | |
| if [[ -d "$sdk/platforms/android-37.0" && ! -e "$sdk/platforms/android-37" ]]; then | |
| ln -s android-37.0 "$sdk/platforms/android-37" | |
| fi | |
| ls -la "$sdk/platforms" | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Build application | |
| working-directory: application | |
| # No --scan: avoids build-scan ToS prompts / account coupling in CI. | |
| run: ./gradlew build --stacktrace --console=plain |