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 }