Tôi đang cố gắng tạo luồng công việc Jenkins bằng cách sử dụng một Jenkinsfile. Tất cả những gì tôi muốn làm là theo dõi nhánh 'phát triển' để thay đổi. Khi một thay đổi xảy ra, tôi muốn nó để git tag và hợp nhất để làm chủ. Tôi đang sử dụng GitSCM Bước nhưng điều duy nhất mà nó xuất hiện để hỗ trợ là git clone. Tôi không muốn phải ra ngoài để làm thẻ/hợp nhất nhưng tôi thấy không có cách nào xung quanh nó. Có ai biết nếu điều này là có thể? Tôi đang sử dụng BitBucket (on-prem) cho máy chủ Git của tôi.Có thể Git hợp nhất/đẩy bằng cách sử dụng đường ống Jenkins
Trả lời
Hiện tại, không thể vì plugin GitPublisher
, plugin trước đây chịu trách nhiệm gắn thẻ/hợp nhất/đẩy vào công việc tự do, chưa được cập nhật để tương thích với đường ống Jenkins. Bạn có thể theo dõi vấn đề đó trên cả số pipeline plugins compatibility page và số GitPublisher Jira issue chuyên dụng. Vì vậy, có vẻ như tùy chọn duy nhất bạn có là thực sự bao gồm các lệnh gắn thẻ/hợp nhất của bạn ... Tuy nhiên, lưu ý rằng bạn vẫn có thể hưởng lợi từ một số khả năng tích hợp của Jenkins như sử dụng thông tin đăng nhập cho repo Git của bạn , làm cho nó khá đơn giản để sau đó gắn thẻ/hợp nhất theo nhu cầu của bạn.
Ví dụ ra trả phòng:
git url: "ssh://[email protected]:12345/your-git-project.git",
credentialsId: 'jenkins_ssh_key',
branch: develop
Sau đó tag/merge/đẩy sẽ là khá đơn giản:
sh 'git tag -a tagName -m "Your tag comment"'
sh 'git merge develop'
sh 'git commit -am "Merged develop branch to master'
sh "git push origin master"
Tôi hy vọng rằng một ngày nào đó GitPublisher sẽ được phát hành trong một phiên bản đường ống tương thích , nhưng bây giờ cách giải quyết này nên làm.
Nếu những gì bạn đang sau là những thông tin git bạn có thể sử dụng plugin SSH Agent như trong liên kết này: https://issues.jenkins-ci.org/browse/JENKINS-28335?focusedCommentId=260925&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-260925
sshagent(['git-credentials-id']) {
sh "git push origin master"
}
điều này vẫn còn yêu cầu tên người dùng và mật khẩu – vinay
Hãy chắc chắn rằng bạn đã đăng nhập thông qua SSH kích hoạt trên git của bạn và bạn đã thêm các khóa SSH chính xác để Jenkins của bạn.Điều này đã làm việc cho tôi và 6 người khác mà không cần bất kỳ cấu hình bổ sung nào. –
Trong trường hợp của tôi, tôi đã buộc phải làm việc với HTTPS. Tôi đã giải quyết nó bằng cách:
- Tạo thông tin đăng nhập tên người dùng/mật khẩu bitbucketUsernamePassword.
- Sử dụng thông tin xác thực đó để thanh toán.
- Đặt thông tin xác thực.helper trước khi thanh toán.
- Làm chi nhánh thanh toán git để nhận điều khiển từ xa theo dõi chi nhánh tại địa phương.
Sau đó, tôi có thể đẩy mọi thứ với git push sau đó.
Như thế này:
sh 'git config --global credential.helper cache'
sh 'git config --global push.default simple'
checkout([
$class: 'GitSCM',
branches: [[name: branch]],
extensions: [
[$class: 'CloneOption', noTags: true, reference: '', shallow: true]
],
submoduleCfg: [],
userRemoteConfigs: [
[ credentialsId: 'bitbucketUsernamePassword', url: cloneUrl]
]
])
sh "git checkout ${branch}" //To get a local branch tracking remote
Sau đó, tôi có thể làm những việc như:
sh 'git push'
- 1. jenkins đường ống không thể kiểm tra mã vào git
- 2. cách tắt công việc đường ống jenkins
- 3. Cách kích hoạt đường ống jenkins từ kho chứa bitbucket
- 4. nút cài đặt trên jenkins 2.0 bằng cách sử dụng plugin đường ống
- 5. Cảnh báo đường ống jenkins
- 6. Tạo kịch bản đường ống jenkins có thể sử dụng lại
- 7. Đường ống Jenkins: có thể tránh nhiều lần thanh toán không?
- 8. Plugin Jenkins EnvInject + Công việc đường ống
- 9. Git kịch bản đường ống thông số
- 10. Biến môi trường trong Đường ống Jenkins
- 11. Cách lấy URL của công việc đường ống trong jenkins
- 12. Jenkins cách tạo bước thủ công đường ống
- 13. Trình quản lý tích hợp Git Workflow bằng cách sử dụng Jenkins/Hudson
- 14. Cú pháp đường ống Jenkins cho "p4sync"
- 15. Đường dẫn Jenkins Jenkinsfile: chỉ thị 'nút' và 'đường ống'
- 16. Đường ống Jenkins với song song
- 17. Biến môi trường truy cập đường ống Jenkins
- 18. Đường ống Jenkins sh dường như không tôn trọng đường ống trong lệnh shell
- 19. Docker không tìm thấy khi xây dựng hình ảnh docker bằng cách sử dụng đường ống chứa Docker Jenkins
- 20. Tôi có thể tạo các giai đoạn động trong một đường ống Jenkins không?
- 21. Sử dụng FilePath để truy cập không gian làm việc trên slave trong đường ống Jenkins
- 22. Sao chép xây dựng tạo tác giữa các nút sử dụng Jenkins đường ống
- 23. Mẫu mỏng biên dịch bằng cách sử dụng đường ống tài sản đường ray
- 24. Sử dụng ci-game từ kịch bản đường ống Jenkins groovy
- 25. Công việc đường ống Jenkins với thông số tệp
- 26. Jenkins trong thùng chứa Docker (đường ống chạy docker)
- 27. Đường ống và chỉ mục tổng hợp
- 28. Xây dựng một sửa đổi cụ thể trong Đường ống Jenkins
- 29. Cấu hình chỉnh sửa Jenkins trong đường ống nhiều nhánh
- 30. Tên chi nhánh đường ống Jenkins trả về null
Thật sao? Khi tôi thử câu trả lời ở trên (bằng cách sử dụng chứng chỉ ssh chỉ sống ở trên) và cố gắng làm bất cứ điều gì liên lạc với điều khiển từ xa, tôi đã cho phép từ chối (công khai). ' nó có thể kiểm tra mã từ git như trên, nhưng thông tin đăng nhập không được lưu trữ –
Hãy tiếp tục với vấn đề cụ thể của bạn về [câu hỏi dành riêng] của bạn (http://stackoverflow.com/q/39237910/702954) – Pom12