Delete .idea directory #5
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: CI | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # ── formcraft-core: build + unit tests ────────────────────────────────────── | |
| test-core: | |
| name: Core — Build & Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Grant gradlew permission | |
| run: chmod +x gradlew | |
| - name: Build formcraft-core | |
| run: ./gradlew :formcraft-core:build | |
| - name: Run formcraft-core tests | |
| run: ./gradlew :formcraft-core:jvmTest | |
| - name: Upload test report | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: core-test-report | |
| path: formcraft-core/build/reports/tests/jvmTest/ | |
| # ── formcraft-compose: build ───────────────────────────────────────────────── | |
| build-compose: | |
| name: Compose — Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Grant gradlew permission | |
| run: chmod +x gradlew | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Build formcraft-compose | |
| run: ./gradlew :formcraft-compose:build | |
| - name: Upload lint report | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: compose-lint-report | |
| path: formcraft-compose/build/reports/lint-results-debug.html | |
| # ── sample-app: assemble ───────────────────────────────────────────────────── | |
| build-sample: | |
| name: Sample App — Assemble | |
| runs-on: ubuntu-latest | |
| needs: [ test-core, build-compose ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Grant gradlew permission | |
| run: chmod +x gradlew | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Assemble sample-app debug | |
| run: ./gradlew :sample-app:assembleDebug | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: sample-app-debug | |
| path: sample-app/build/outputs/apk/debug/sample-app-debug.apk | |
| # ── publish to Maven Local (dry-run for PRs) ───────────────────────────────── | |
| publish-check: | |
| name: Publish — Dry Run | |
| runs-on: ubuntu-latest | |
| needs: [ test-core, build-compose ] | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Grant gradlew permission | |
| run: chmod +x gradlew | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Publish to Maven Local (no signing) | |
| run: ./gradlew publishToMavenLocal -PskipSigning=true | |
| # ── publish to Maven Central (on main only) ────────────────────────────────── | |
| publish: | |
| name: Publish — Maven Central | |
| runs-on: ubuntu-latest | |
| needs: [ test-core, build-compose ] | |
| if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Grant gradlew permission | |
| run: chmod +x gradlew | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Verify secrets are configured | |
| run: | | |
| missing=() | |
| [ -z "$MAVEN_USER" ] && missing+=("MAVEN_CENTRAL_USERNAME") | |
| [ -z "$MAVEN_PASS" ] && missing+=("MAVEN_CENTRAL_PASSWORD") | |
| [ -z "$SIGNING_KEY" ] && missing+=("SIGNING_IN_MEMORY_KEY") | |
| [ -z "$SIGNING_PASS" ] && missing+=("SIGNING_IN_MEMORY_KEY_PASSWORD") | |
| if [ ${#missing[@]} -ne 0 ]; then | |
| echo "❌ Missing secrets: ${missing[*]}" | |
| echo "Add them in: GitHub repo → Settings → Secrets → Actions" | |
| exit 1 | |
| fi | |
| echo "✅ All secrets present" | |
| env: | |
| MAVEN_USER: ${{ secrets.MAVEN_CENTRAL_USERNAME }} | |
| MAVEN_PASS: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} | |
| SIGNING_KEY: ${{ secrets.SIGNING_IN_MEMORY_KEY }} | |
| SIGNING_PASS: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} | |
| - name: Publish to Maven Central | |
| run: ./gradlew publishAllPublicationsToMavenCentralRepository | |
| env: | |
| ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} | |
| ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} |