proxy-nginx/deploy-this/update-from-git.jenkinsfile

62 lines
1.7 KiB
Plaintext
Executable File

def git_remote = "https://git.arti24.eu/gitea"
def projects = [
"proxy-nginx",
"arti24",
"angular-services",
"arti-angular-app"
]
def programs = "/_sd_/_programs_"
def git_take(projects, git_remote) {
withCredentials([usernamePassword(
credentialsId: '9e8daaa4-8c14-41ae-947b-65ba47965dfe',
usernameVariable: 'GIT_USER',
passwordVariable: 'GIT_PASS')]) {
projects.each { project ->
if (fileExists(project)) {
dir(project) {
sh """
echo "=== Updating ${project} ==="
git config --global --add safe.directory \$(pwd)
git remote set-url origin https://${GIT_USER}:${GIT_PASS}@git.arti24.eu/gitea/${project}.git
git fetch --prune origin
git checkout -B main origin/main
"""
}
} else {
sh """
echo "=== Cloning ${project} (last year only) ==="
git clone --shallow-since="1 year ago" https://${GIT_USER}:${GIT_PASS}@git.arti24.eu/gitea/${project}.git ${project}
"""
dir(project) {
sh "git config --global --add safe.directory \$(pwd)"
}
}
dir(project) {
sh "git --no-pager log -n 1 --pretty=format:'%h %ad %s' --date=short"
}
}
}
}
pipeline {
agent any
environment {
CUSTOM_WORKSPACE = programs
}
stages {
stage('Update from git') {
steps {
script {
git_take(projects, git_remote)
}
}
}
}
}