name: Android CI/CD on: push: branches: [ main, claude/** ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: gradle - name: Grant execute permission for gradlew run: chmod +x android-app/gradlew - name: Compute version run: | COMMIT_SHORT=$(git rev-parse --short HEAD) COMMIT_MSG=$(git log -1 --pretty=format:'%s' | cut -c1-60) VN="1.0.${{ github.run_number }} (${COMMIT_SHORT} ${COMMIT_MSG})" printf '\nbuildVersionCode=${{ github.run_number }}\nbuildVersionName=%s\n' "$VN" >> android-app/gradle.properties echo "BUILD_VERSION_NAME=${VN}" >> $GITHUB_ENV - name: Build with Gradle run: ./gradlew assembleDebug working-directory: android-app - name: upload artifact to Firebase App Distribution if: github.ref == 'refs/heads/main' && github.event_name == 'push' uses: wzieba/Firebase-Distribution-Github-Action@v1 with: appId: ${{secrets.FIREBASE_APP_ID}} serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }} groups: testers releaseNotes: "${{ env.BUILD_VERSION_NAME }}" file: android-app/app/build/outputs/apk/debug/app-debug.apk - name: Notify claudomator if: always() env: CLAUDOMATOR_WEBHOOK_URL: ${{ secrets.CLAUDOMATOR_WEBHOOK_URL }} CLAUDOMATOR_WEBHOOK_SECRET: ${{ secrets.CLAUDOMATOR_WEBHOOK_SECRET }} run: | PAYLOAD=$(jq -n \ --arg action "completed" \ --arg conclusion "${{ job.status }}" \ --arg name "${{ github.workflow }}" \ --arg repo "${{ github.repository }}" \ --arg sha "${{ github.sha }}" \ --arg run_id "${{ github.run_id }}" \ '{action: $action, workflow_run: {conclusion: $conclusion, name: $name, head_sha: $sha, id: ($run_id | tonumber)}, repository: {full_name: $repo}}') SIG=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$CLAUDOMATOR_WEBHOOK_SECRET" | awk '{print $2}') curl -sf -X POST \ -H "Content-Type: application/json" \ -H "X-GitHub-Event: workflow_run" \ -H "X-Hub-Signature-256: sha256=${SIG}" \ "${CLAUDOMATOR_WEBHOOK_URL}/api/webhooks/github" \ -d "$PAYLOAD"