67 lines
2.0 KiB
Groovy
67 lines
2.0 KiB
Groovy
def downloadHelpers(String gitBase, String path) {
|
|
sh "curl -L ${gitBase}/Jenkins/jenkins-tools/raw/branch/master/helpers.groovy -o $path"
|
|
}
|
|
|
|
def downloadReleaseConfig(String gitBase, String path) {
|
|
sh "curl -L ${gitBase}/Jenkins/semantic/raw/branch/main/release.config.cjs -o $path"
|
|
}
|
|
|
|
def semanticGetContainerTemplate() {
|
|
return containerTemplate(name: semanticGetContainerName(), image: "goodhumored/semantic-release-dipal:0.1.1-alpine", command: "sleep", args: "99d", NodeSelector: "kubernetes.io/os=linux")
|
|
}
|
|
|
|
def semanticGetContainerName() {
|
|
return "semantic-release"
|
|
}
|
|
|
|
def semanticStage(String stageName, String containerName, Closure body) {
|
|
stage(stageName) {
|
|
container(containerName) {
|
|
sh "git config --global --add safe.directory \$(pwd)"
|
|
body()
|
|
}
|
|
}
|
|
}
|
|
|
|
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 giteaTokenCredId,
|
|
String giteaCredId,
|
|
String giteaUrl,
|
|
String currentBranch,
|
|
String devBranch
|
|
) {
|
|
semanticStage(stageName, semanticGetContainerName()) {
|
|
withCredentials([
|
|
usernamePassword(credentialsId: giteaCredId, usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS'),
|
|
usernameColonPassword(credentialsId: giteaCredId, variable: 'GIT_CREDENTIALS'),
|
|
string(credentialsId: giteaTokenCredId, variable: "GITEA_TOKEN"),
|
|
]) {
|
|
semanticExec(giteaUrl)
|
|
sh "rm release.config.cjs"
|
|
semanticSyncDev(currentBranch, devBranch)
|
|
}
|
|
}
|
|
}
|
|
|
|
def semanticGetVersion() {
|
|
def version = sh(script: 'git describe --tags --abbrev=0', returnStdout: true).trim()
|
|
return version
|
|
}
|
|
|
|
return this;
|