jenkins pipeline 中 clone 一个 git 库

目前找到了 4 种方式

方式1:

1
2
3
4
5
6
7
8
9
10
11
12

stage('git clone') {
steps {
sh 'mkdir -p Module1'
dir("Module1"){
git branch: "1.0/develop",
credentialsId: '{credentialsId}',
url: '{gitrepo}'
}
sh 'ls -al Module1'
}
}

方式2:

在 jenkins 的构建节点上配置好 git 仓库的 ssh 你要,然后使用 ssh 认证的方式来 clone

1
git clone {repo} Module1

方式3:
使用 https 方式认证,在 url 中擦入账号和密码

1
2
3
4
5
6
7
8
9
10
11

stage('拉取devops-deploy') {
sh "if [ -d ${devops_deploy} ]; then rm -rf ${devops_deploy}; fi"
withCredentials([usernamePassword(credentialsId: '{credentialsId}', passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) {
def u = URLEncoder.encode(GIT_USERNAME,'UTF-8')
def p = URLEncoder.encode(GIT_PASSWORD,'UTF-8')
sh """
git clone --branch ${params['deploy_tag']} https://${u}:${p}@hellojukay.cn/irp/SNC/devops-deploy.git ${devops_deploy}
"""
}
}

方式4:

1
2
3
4
5
6
7
8
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: '{credentialsId}', url: '{repo}']]
])