semantic/semantic.groovy
2025-11-05 13:55:13 +03:00

44 lines
1.4 KiB
Groovy

def downloadHelpers(path) {
sh "curl -L ${env.GIT_SCHEME}${env.GIT_HOST}/Jenkins/jenkins-tools/raw/branch/master/helpers.groovy -o $path"
}
def semanticStage(String stageName, String containerName, Closure body) {
stage(stageName) {
container(containerName) {
sh "git config --global --add safe.directory \$(pwd)"
}
}
}
def semanticExec(String giteaUrl) {
sh "GITEA_URL=${giteaUrl} semantic-release --ci"
}
def semanticSyncDev(String currentBranch, String devBranch) {
if (currentBranch == "main" || currentBranch == "master") {
sh "git checkout ${devBranch}"
sh "git pull origin"
sh "git merge ${currentBranch} -m 'Merge versioning [skip ci]'"
sh "git push origin ${devBranch}"
sh "git checkout ${currentBranch}"
}
}
def semantic(String stageName, String containerName, String giteaTokenCredId, String giteaCredId) {
semanticStage(stageName, containerName) {
withCredentials([
usernamePassword(credentialsId: giteaCredId, usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS'),
usernameColonPassword(credentialsId: giteaCredId, variable: 'GIT_CREDENTIALS'),
string(credentialsId: giteaTokenCredId, variable: "GITEA_TOKEN"),
]) {
semanticExec()
semanticSyncDev()
}
}
}
def semanticGetVersion() {
def version = sh(script: 'git describe --tags --abbrev=0', returnStdout: true).trim()
return version
}