2016-07-19 17 views
23

Tôi đã sau this tutorial:Thanh toán Jenkins Pipeline Git SCM bằng thông tin đăng nhập?

node { 
    git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git' 
    ... 
} 

Tuy nhiên nó không biết làm thế nào để thêm thông tin. Jenkins có phần "Thông tin xác thực" cụ thể nơi bạn xác định người dùng sử dụng & vượt qua và sau đó nhận ID cho điều đó để sử dụng trong công việc, nhưng làm cách nào để sử dụng điều đó trong hướng dẫn Đường dẫn?

Tôi đã thử với:

git([url: '[email protected]:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455']) 

không may mắn:

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. 

Có cách nào cấu hình creds trong đường ống, hay tôi phải đặt SSH-chìa khóa để .ssh của Jenkin của người dùng Linux/authorized_keys tập tin? Trong thế giới lý tưởng, tôi muốn có một kho lưu trữ cho các công việc đường ống và repo-keys, sau đó khởi động Docker Jenkins, và tự động thêm các công việc và các khóa ở đó mà không cần phải cấu hình bất cứ điều gì trong Bảng điều khiển Jenkins.

Trả lời

48

Bạn có thể sử dụng sau đây trong một đường ống:

git branch: 'master', 
    credentialsId: '12345-1234-4696-af25-123455', 
    url: 'ssh://[email protected]:company/repo.git' 

Nếu bạn đang sử dụng url ssh sau đó thông tin của bạn phải là tên người dùng + private key. Nếu bạn đang sử dụng https clone url thay vì ssh, thì thông tin đăng nhập của bạn phải là tên người dùng + mật khẩu.

+0

Điều đó đã khắc phục được cảm ơn bạn. Tôi không biết rằng url-url và HTTPS-url yêu cầu thông tin xác thực khác nhau để làm việc với! – Render

+1

nó rất hữu ích, nhưng 'credentialsId' xuất phát từ id trong [' /var/lib/jenkins/credentials.xml'](https://stackoverflow.com/a/35603191/432903) vì tôi phải đấu tranh để tìm ra nó ngoài. – prayagupd

+4

@prayagupd, bạn sẽ có thể lấy ID thông tin xác thực từ trang thông tin đăng nhập ('http: // yourjenkinsinstall/credentials'). Không cần phải rà soát các tập tin cấu hình. –

5

Nếu bạn muốn sử dụng thông tin ssh,

git(
     url: '[email protected]<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 

nếu bạn muốn sử dụng tên đăng nhập và mật khẩu thông tin, bạn cần phải sử dụng http clone như @Serban đề cập.

git(
     url: 'https://github.com/<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 
Các vấn đề liên quan