66 lines
2.3 KiB
Groovy
66 lines
2.3 KiB
Groovy
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}"
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
} |