pipeline {
    agent any

    stages {
        stage('Build Android APK') {
environment {
    JAVA_HOME = '/usr/lib/jvm/java-21-openjdk-amd64'
    ANDROID_HOME = '/opt/android-sdk'
    ANDROID_SDK_ROOT = '/opt/android-sdk'
    PATH = "/usr/lib/jvm/java-21-openjdk-amd64/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:${env.PATH}"
}

            steps {
                cleanWs()
                checkout scm

                sh '''
                    chmod +x ./gradlew
                    ./gradlew clean assembleDebug
                '''

                archiveArtifacts artifacts: '**/build/outputs/apk/**/*.apk', fingerprint: true
            }
        }
    }
    post {
        always {
            withCredentials([string(credentialsId: 'TAIGA_TOKEN', variable: 'TAIGA_TOKEN')]) {
                sh '''
                    set -e

                    REF=$(git log -1 --pretty=%B | grep -oE 'TG-[0-9]+' | head -1 | cut -d- -f2)

                    if [ -z "$REF" ]; then
                      echo "No TG-* reference found"
                      exit 0
                    fi

                    STATUS="${currentBuild.currentResult}"
                    COMMENT="Jenkins build #${BUILD_NUMBER}: ${STATUS}\\n${BUILD_URL}"

                    ISSUE_JSON=$(curl -s \
                      -H "Authorization: Bearer ${TAIGA_TOKEN}" \
                      "https://taiga.grigowashere.ru/api/v1/issues/by_ref?project=2&ref=${REF}")

                    ISSUE_ID=$(echo "$ISSUE_JSON" | python3 -c 'import sys,json; print(json.load(sys.stdin)["id"])')
                    VERSION=$(echo "$ISSUE_JSON" | python3 -c 'import sys,json; print(json.load(sys.stdin)["version"])')

                    python3 - <<PY > /tmp/taiga-comment.json
    import json
    comment = """${COMMENT}"""
    print(json.dumps({"comment": comment, "version": int("${VERSION}")}))
    PY

                    curl -s -X POST \
                      -H "Authorization: Bearer ${TAIGA_TOKEN}" \
                      -H "Content-Type: application/json" \
                      --data @/tmp/taiga-comment.json \
                      "https://taiga.grigowashere.ru/api/v1/issues/${ISSUE_ID}/comments"

                    echo "Commented Taiga TG-${REF}"
                '''
            }
        }
    }
}