Jenkins Pipeline Git SCM 자격 증명 확인?
node {
git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git'
...
}
그러나 자격 증명을 추가하는 방법은 알려주지 않습니다.Jenkins에는 사용자 사용자를 정의하고 작업에 사용할 ID를 가져오는 특정 "인증 정보" 섹션이 있습니다. 하지만 파이프라인 지침에서 이를 어떻게 사용합니까?
시도한 항목:
git([url: 'git@bitbucket.org:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455'])
운이 없습니다.
stderr: Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
파이프라인에서 자격 증명을 구성하는 방법이 있습니까? 아니면 Jenkin의 Linux 사용자의 .ssh/authorized_keys 파일에 SSH 키를 넣어야 합니까?
이상적인 환경에서는 파이프라인 작업 및 재포키 저장소를 가진 다음 Docker Jenkins를 시작하고 Jenkins 콘솔에서 아무것도 구성하지 않고 이러한 작업 및 키를 동적으로 추가합니다.
파이프라인에서 다음을 사용할 수 있습니다.
git branch: 'master',
credentialsId: '12345-1234-4696-af25-123455',
url: 'ssh://git@bitbucket.org:company/repo.git'
sshurl을 사용하는 경우 자격 증명은 사용자 이름 + 개인 키여야 합니다.SSH 대신 https clone url을 사용하는 경우 자격 증명은 사용자 이름 + 암호여야 합니다.
특정 인증 정보를 사용하여 명시적으로 체크아웃하려면 다음과 같이 하십시오.
stage('Checkout external proj') {
steps {
git branch: 'my_specific_branch',
credentialsId: 'my_cred_id',
url: 'git@test.com/proj/test_proj.git'
sh "ls -lat"
}
}
현재 Jenkins 작업에서 구성된 인증 정보를 기준으로 체크아웃하려면 다음과 같이 하십시오.
stage('Checkout code') {
steps {
checkout scm
}
}
단일 Jenkins 파일 내에서 두 단계를 모두 사용할 수 있습니다.
Git 플러그인 GitSCM을 사용하여 간단한 예제 추가:
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: '<gitCredentials>', url: '<gitRepoURL>']]
])
당신의 파이프라인에
stage('checkout'){
steps{
script{
checkout
}
}
}
SSH 자격 증명을 사용하려면
git(
url: 'git@github.com<repo_name>.git',
credentialsId: 'xpc',
branch: "${branch}"
)
사용자 이름 및 암호 자격 증명을 사용하려면 @Serban이 언급한 대로 http clone을 사용해야 합니다.
git(
url: 'https://github.com/<repo_name>.git',
credentialsId: 'xpc',
branch: "${branch}"
)
토론에 추가할 가치가 있는 것은...내가 한 일은 결국 날...파이프라인은 실행될 때마다 정리되는 도커 이미지 내의 작업 공간 내에서 실행되기 때문입니다.파이프라인 내에서 repo에 필요한 작업을 수행하는 데 필요한 자격 증명을 가져와 .netrc 파일에 저장했습니다.이를 통해 Gitrepo 작업을 성공적으로 승인할 수 있었습니다.
withCredentials([usernamePassword(credentialsId: '<credentials-id>', passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) {
sh '''
printf "machine github.com\nlogin $GIT_USERNAME\n password $GIT_PASSWORD" >> ~/.netrc
// continue script as necessary working with git repo...
'''
}
를 사용하여 해결했습니다.
checkout scm: ([
$class: 'GitSCM',
userRemoteConfigs: [[credentialsId: '******',url: ${project_url}]],
branches: [[name: 'refs/tags/${project_tag}']]
])
언급URL : https://stackoverflow.com/questions/38461705/checkout-jenkins-pipeline-git-scm-with-credentials
'programing' 카테고리의 다른 글
두 개의 포맷 문자열이 호환되는지 확인하는 방법은? (0) | 2023.09.06 |
---|---|
MySQL/MariaDB 오류가 발생하도록 경고 구성 (0) | 2023.09.06 |
Spring MVC에서 AJAX를 사용하여 뷰를 렌더링하는 방법 (0) | 2023.09.01 |
SHA256 in swift (0) | 2023.09.01 |
클릭 이벤트에서 요소를 요소 외부에 숨기려면 어떻게 해야 합니까? (0) | 2023.09.01 |