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