Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
3f4a163fe4
|
|||
|
7001d57332
|
82
.jenkinsfile
Normal file
82
.jenkinsfile
Normal file
@@ -0,0 +1,82 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
tools {
|
||||
jdk 'Temurin 21'
|
||||
}
|
||||
|
||||
environment {
|
||||
GITEA_API_URL = 'https://di9.ru/git/api/v1/repos/Voomra/ss14-launcher-extractor/releases'
|
||||
GITEA_TOKEN = credentials('JENKINS_GITEA_ACCESS_TOKEN')
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Сборка') {
|
||||
steps {
|
||||
sh './gradlew clean shadowJar'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Создание релиза') {
|
||||
steps {
|
||||
script {
|
||||
def version = sh(script: './gradlew properties -q | grep "version:" | awk \'{print $2}\'', returnStdout: true).trim()
|
||||
|
||||
def releaseData = """
|
||||
{
|
||||
"tag_name": "v${version}",
|
||||
"name": "Release v${version}",
|
||||
"draft": false,
|
||||
"prerelease": false
|
||||
}
|
||||
"""
|
||||
|
||||
def responseApi = httpRequest(
|
||||
url: env.GITEA_API_URL,
|
||||
httpMode: 'POST',
|
||||
customHeaders: [
|
||||
[name: 'Accept', value: 'application/json'],
|
||||
[name: 'Content-Type', value: 'application/json;charset=utf-8'],
|
||||
[name: 'Authorization', value: 'token ' + env.GITEA_TOKEN],
|
||||
],
|
||||
requestBody: releaseData)
|
||||
|
||||
def releaseId = new groovy.json.JsonSlurper().parseText(responseApi.content).id
|
||||
env.RELEASE_ID = releaseId
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Загрузка файлов в релиз') {
|
||||
steps {
|
||||
script {
|
||||
if (!env.RELEASE_ID) {
|
||||
error '❌ ID релиза не определен'
|
||||
}
|
||||
|
||||
def files = findFiles(glob: 'build/libs/*.jar')
|
||||
if (files.length == 0) {
|
||||
echo '⚠️ Нет артефактов для загрузки'
|
||||
return
|
||||
}
|
||||
|
||||
files.each { file ->
|
||||
def fileName = file.name
|
||||
echo "Загружаем файл: ${fileName}"
|
||||
|
||||
httpRequest(
|
||||
url: "${env.GITEA_API_URL}/${env.RELEASE_ID}/assets?name=${fileName}",
|
||||
httpMode: 'POST',
|
||||
customHeaders: [
|
||||
[name: 'Accept', value: 'application/json'],
|
||||
[name: 'Content-Type', value: 'multipart/form-data'],
|
||||
[name: 'Authorization', value: 'token ' + env.GITEA_TOKEN]
|
||||
],
|
||||
uploadFile: "build/libs/${fileName}",
|
||||
multipartName: 'attachment')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
when:
|
||||
- branch: develop
|
||||
event: [ manual ]
|
||||
- event: tag
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: "docker.io/library/eclipse-temurin:21-jdk-alpine"
|
||||
commands:
|
||||
- ./gradlew shadowJar
|
||||
when:
|
||||
event: [ manual, tag ]
|
||||
|
||||
- name: release
|
||||
image: "docker.io/woodpeckerci/plugin-release:0.2.4"
|
||||
settings:
|
||||
api_key:
|
||||
from_secret: "Woodpecker-Release-Token"
|
||||
files: "build/libs/*.jar"
|
||||
base-url: "https://di9.ru/git"
|
||||
when:
|
||||
event: [ tag ]
|
||||
Reference in New Issue
Block a user