如何从git中查看代码
stage('Checkout code') {
checkout scm
}
并在后续阶段修改存储库?比如git标签或版本提交。
答案 0 :(得分:2)
我能想到的最好的。
stage('Stage Checkout') {
checkout([
$class : 'GitSCM',
branches : scm.branches,
doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
extensions : [] + [
$class : 'LocalBranch'
],
userRemoteConfigs : scm.userRemoteConfigs,
])
}
//do git stuff
stage('Push Version Back to Git') {
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'jenkins', usernameVariable: 'GIT_AUTHOR_NAME', passwordVariable: 'GIT_PASSWORD']]) {
sh 'echo ${GIT_AUTHOR_NAME} pushing '
sh 'git config --global user.email "user@test.com"'
sh 'git config --global user.name "Jenkins"'
sh 'git config --global push.default simple'
sh('git push https://${GIT_AUTHOR_NAME}:${GIT_PASSWORD}@github.com/a/a.git')
}
}
答案 1 :(得分:0)
具有以下功能使其对我有用。另外要记住的一件事是,如果您的密码或用户名包含任何特殊字符,请确保已将它们与编码的字符一起保存在凭据中。其他它永远都行不通。
这件事也发生在我身上,我浪费了很多时间……疯狂的……
pipeline {
// ..
stages {
stage('Clone') {
steps {
sh "git config --global user.email 'root@my-domain.com'"
sh "git config --global user.name 'My Name'"
sh 'git config --global push.default simple'
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: '123123ghghjg13123', usernameVariable: 'GIT_AUTHOR_NAME', passwordVariable: 'GIT_PASSWORD']]) {
sh('git clone https://${GIT_AUTHOR_NAME}:${GIT_PASSWORD}@my-repo.git')
}
}
}
stage('Build') {
steps {
// ...
}
}
stage('Publish') {
steps {
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: '123123ghghjg13123', usernameVariable: 'GIT_AUTHOR_NAME', passwordVariable: 'GIT_PASSWORD']]) {
sh('git push https://${GIT_AUTHOR_NAME}:${GIT_PASSWORD}@my-repo.git --tags -f --no-verify')
}
}
}
}
}