diff --git a/Jenkinsfile b/Jenkinsfile index 7040d27..5398557 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,6 +9,8 @@ pipeline { TAIGA_PROJECT_ID = '2' TAIGA_URL = 'https://taiga.grigowashere.ru' + GITEA_OWNER = 'Grigo' + GITEA_REPO = 'Testing' } stages { @@ -23,6 +25,59 @@ pipeline { ''' 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: 'Gitea_Credentials', variable: 'GITEA_TOKEN')]) { + writeFile file: 'gitea-release.ps1', text: ''' +$ErrorActionPreference = "Stop" + +$apkPath = "build/outputs/apk/debug/app-debug.apk" + +$headers = @{ + Authorization = "token $env:GITEA_TOKEN" +} + +$body = @{ + tag_name = "v$env:BUILD_NUMBER" + target_commitish = "main" + name = "Release v$env:BUILD_NUMBER" + body = "Jenkins Android build $env:BUILD_NUMBER`n$env:BUILD_URL" + draft = $false + prerelease = $false +} | ConvertTo-Json + +# Создаём релиз в Gitea +$release = Invoke-RestMethod ` + -Method Post ` + -Uri "https://git.grigowashere.ru/api/v1/repos/$env:GITEA_OWNER/$env:GITEA_REPO/releases" ` + -Headers $headers ` + -ContentType "application/json" ` + -Body $body + +# Формируем URL для загрузки артефакта +$uploadUrl = "https://git.grigowashere.ru/api/v1/repos/$env:GITEA_OWNER/$env:GITEA_REPO/releases/$($release.id)/assets?name=app-debug.apk" + +# Используем curl для загрузки APK в Gitea +curl.exe -X POST ` + $uploadUrl ` + -H "Authorization: token $env:GITEA_TOKEN" ` + -F "attachment=@$apkPath;type=application/vnd.android.package-archive" + +if ($LASTEXITCODE -ne 0) { + throw "Gitea asset upload failed: $apkPath" +} +''' + + bat ''' +powershell -NoProfile -ExecutionPolicy Bypass -File gitea-release.ps1 +''' + } } } }