Skip to content

Delete .idea directory #5

Delete .idea directory

Delete .idea directory #5

Workflow file for this run

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 }}