generated from Grigo/AndroidTemplate
85 lines
2.7 KiB
Groovy
85 lines
2.7 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
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}"
|
|
|
|
GITEA_OWNER = 'Grigo'
|
|
GITEA_REPO = 'TestingAndroidBuild' // Замените на нужный репозиторий
|
|
GITEA_URL = 'https://git.grigowashere.ru' // Базовый URL Gitea
|
|
GITEA_API_URL = "${GITEA_URL}/api/v1"
|
|
GITEA_TOKEN_CREDENTIALS_ID = 'Gitea_Credentials' // ID ваших креденшлов для Gitea в Jenkins
|
|
}
|
|
|
|
stages {
|
|
stage('Build Android APK') {
|
|
steps {
|
|
cleanWs()
|
|
checkout scm
|
|
|
|
sh '''
|
|
chmod +x ./gradlew
|
|
./gradlew clean assembleDebug
|
|
'''
|
|
|
|
archiveArtifacts artifacts: '**/build/outputs/apk/**/*.apk', fingerprint: true
|
|
stash name: 'apk', includes: '**/build/outputs/apk/**/*.apk'
|
|
}
|
|
}
|
|
|
|
stage('Create Gitea Release and Upload APK') {
|
|
steps {
|
|
unstash 'apk'
|
|
|
|
withCredentials([string(credentialsId: "${env.GITEA_TOKEN_CREDENTIALS_ID}", variable: 'GITEA_TOKEN')]) {
|
|
writeFile file: 'gitea-release.sh', text: '''
|
|
#!/bin/bash
|
|
|
|
apkPath=$(find . -path '*/build/outputs/apk/debug/*.apk' -type f | head -1)
|
|
if [ -z "$apkPath" ]; then
|
|
echo "APK not found under */build/outputs/apk/debug/"
|
|
exit 1
|
|
fi
|
|
headers="Authorization: token $GITEA_TOKEN"
|
|
|
|
# Создаем релиз на Gitea
|
|
release=$(curl -X POST "${GITEA_API_URL}/repos/$GITEA_OWNER/$GITEA_REPO/releases" \
|
|
-H "$headers" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"tag_name": "v'$BUILD_NUMBER'",
|
|
"target_commitish": "main",
|
|
"name": "Release v'$BUILD_NUMBER'",
|
|
"body": "Jenkins Android build '$BUILD_NUMBER'",
|
|
"draft": false,
|
|
"prerelease": false
|
|
}')
|
|
|
|
releaseId=$(echo $release | jq -r .id)
|
|
|
|
# Формируем URL для загрузки APK
|
|
uploadUrl="${GITEA_API_URL}/repos/$GITEA_OWNER/$GITEA_REPO/releases/$releaseId/assets?name=app-debug.apk"
|
|
|
|
# Загружаем APK файл в Gitea
|
|
curl -X POST "$uploadUrl" \
|
|
-H "$headers" \
|
|
-F "attachment=@$apkPath;type=application/vnd.android.package-archive"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Gitea asset upload failed: $apkPath"
|
|
exit 1
|
|
fi
|
|
'''
|
|
|
|
sh '''
|
|
chmod +x gitea-release.sh
|
|
./gitea-release.sh
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |