Last active
May 28, 2023 14:23
-
-
Save cemtopkaya/5624a179e2d05acc020f72fc3c76cb3b to your computer and use it in GitHub Desktop.
Jenkinsfile içinde repoyu çekmeden önce temizleme, credentials("credId") ile kullanıcı ad ve şifresine erişme, git komutlarını sh ile çalıştırma
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Library('gui_multi_repo@master')_ | |
def RepoUrl = 'https://[email protected]:8443/scm/~cem.topkaya/cinar_smsf_gui.git' | |
pipeline { | |
agent { | |
docker { | |
label "DockerAgent" | |
image "node:14.21.3" | |
} | |
} | |
parameters { | |
string(trim: true, name: 'REPO_URL', defaultValue: RepoUrl, description: 'Repo adresi') | |
string(trim: true, name: 'REPO_CRED_ID', defaultValue: RepoCredId, description: 'GIT Repo bağlantısı olacaksa CRED_ID kullanılacak') | |
string(trim: true, name: 'REPO_SOURCE_BRANCH_NAME', defaultValue: 'refs/remotes/origin/developer', description: 'Kodları hangi BRANCH üstünden çekeceğini belirtiyoruz') | |
string(trim: true, name: 'REPO_TARGET_BRANCH_NAME', defaultValue: 'refs/remotes/origin/master', description: 'Push ile kodun gönderileceği branch') | |
} | |
stages { | |
stage("Git İşlemleri") { | |
steps { | |
script { | |
def credId="${params.REPO_CRED_ID}" | |
def repoUrl="${params.REPO_URL}" | |
def srcBranch="${params.REPO_SOURCE_BRANCH_NAME}" | |
def targetBranch="${params.REPO_TARGET_BRANCH_NAME}" | |
def tagName="cem13" | |
def tagMessage="naber13" | |
echo "credId: $credId" | |
echo "repoUrl: $repoUrl" | |
echo "srcBranch: $srcBranch" | |
echo "targetBranch: $targetBranch" | |
echo "tagName: $tagName" | |
echo "tagMessage: $tagMessage" | |
/** | |
* CredId ile tanımlanan Git kimlik bilgilerini alır | |
* Örneğin verilen credId'nin kullanıcı bilgilerini USERNAME ve PASSWORD değişkenleri içine atar, | |
* kullanıcı adı ve şifresi olacak ve tüm çıktılarda *** ile gizlenir. | |
* Bunu withCredentials fonksiyonu içinde de kullanabilirsiniz. | |
*/ | |
// def gitCredentials = credentials("${credId}") | |
checkout([$class: 'GitSCM', | |
branches: [[name: "${srcBranch}"]], | |
extensions: [ | |
[$class: 'CleanBeforeCheckout'] | |
], | |
userRemoteConfigs: [[ | |
// credId veya gitCredentials.id ile tanımlanan kullanıcı bilgilerinin id değeri verilir | |
credentialsId: "${credId}", | |
url: "${repoUrl}" | |
]] | |
]) | |
withCredentials([ | |
usernamePassword( | |
credentialsId: "${credId}", | |
passwordVariable: 'GIT_PASSWORD', | |
usernameVariable: 'GIT_USERNAME' | |
) | |
]) { | |
def gitUrlWithCredentials = repoUrl.replaceFirst(/(http[s]:\/\/).*@(.*)/,"\$1${GIT_USERNAME}:${GIT_PASSWORD}@\$2") | |
echo "gitUrlWithCredentials: ${gitUrlWithCredentials}" | |
sh """ | |
#!/bin/sh -e | |
git config --global credential.helper cache | |
git config --global push.default simple | |
# Kullanıcı e-posta adresini ayarlar | |
git config --global user.email "${GIT_USERNAME}@alanadi.com.tr" | |
# Kullanıcı adını ayarlar | |
git config --global user.name "${GIT_USERNAME.replace('.', ' '}" | |
# SSL Doğrulama yapmaz | |
git config --global http.sslverify 'false' | |
# Git URL'sinde parolayı kullanarak güncellenmiş URL'yi oluşturun | |
git tag -a ${tagName} -m '${tagMessage}' | |
git push ${gitUrlWithCredentials} ${tagName} | |
git checkout ${targetBranch} | |
# sonra birleştireceğimiz 'kaynak dalını' isteyelim | |
git merge ${srcBranch} | |
git push ${gitUrlWithCredentials} ${targetBranch} | |
""" | |
} | |
} | |
} | |
} | |
} | |
post { | |
success{ | |
echo "** Süreç başarıyla tamamlandı" | |
} | |
failure { | |
echo "** Süreç hatalı tamamlandı" | |
} | |
cleanup{ | |
echo "** Süreç tamamlandı cleanup zamanı" | |
} | |
always { | |
echo "** Süreç günahıyla sevabıyla tamamlandı" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment