我正在嘗試使用Jenkinsfile創建Jenkins工作流程。我希望它做的就是監視'開發'分支的變化。當發生變化時,我希望它能夠標記併合併到主機。我正在使用GitSCM Step,但它唯一支持的是git clone。我不想掏腰包來做標籤/合併,但我看不到它的方式。有誰知道這是否可能?我爲我的Git服務器使用BitBucket(本地)。是否有可能通過Jenkins管道進行Git合併/推送
回答
目前還不可能,因爲GitPublisher
插件(以前負責自由式作業中標記/合併/推送的插件)尚未更新爲與Jenkins管道兼容。您可以在pipeline plugins compatibility page和專用GitPublisher Jira issue上遵循該問題。
所以看起來你唯一的選擇是實際提取你的標記/合併命令......但是,請注意,你仍然可以從一些Jenkins內置功能中受益,例如爲你的Git回購使用憑據,這使得它非常簡單,然後根據您的需求進行標記/合併。
例退房:
git url: "ssh://[email protected]:12345/your-git-project.git",
credentialsId: 'jenkins_ssh_key',
branch: develop
然後標籤/合併/推將是非常簡單的:
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"
我希望有一天GitPublisher將在管道兼容的版本發佈,但現在這個解決方法應該做。
如果你是git的憑證,你可以在這個環節使用SSH代理插件等之後什麼: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"
}
上的具體問題,這仍然是詢問用戶名和密碼 – vinay
請確保您已通過SSH在您的git上啓用登錄,並且您已將正確的SSH密鑰添加到您的Jenkins。這對我和其他6個人都有效,無需任何其他配置。 –
在我來說,我被迫使用HTTPS工作。我解決了它的:
- 創建一個用戶名/密碼憑據bitbucketUsernamePassword。
- 使用該憑證進行結帳。
- 在結帳前設置credential.helper。
- 做一個git結帳分支得到一個本地分支跟蹤遠程。
然後,我可以推git push之後。
像這樣:
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
然後,我可以做這樣的事情:
sh 'git push'
- 1. 通過Jenkins管道合併分支
- 2. 並行Jenkins管道
- 3. 合併並推送所有git分支
- 4. Jenkins多分支管道中的Git提交和推送問題
- 5. 通過powershell管道推送expandos
- 6. Phonegap推送通知是否可能?
- 7. NetBeans:是否有可能在git中推送分支,並帶有選項--force?
- 8. 是否可以通過--ff-only更改進行部分合並?
- 9. 是否有可能在部分中推送git存儲庫?
- 10. 通過過濾分支進行的Git推送更改
- 11. 是否有可能通過git別名覆蓋git命令?
- 12. Jenkins管道日誌文件通過並行階段分離
- 13. Jenkins管道 - git分支
- 14. 離線時是否可以通過gcm發送推送通知?
- 15. 是否有可能通過使用yGuard進行混淆來管理日誌?
- 16. Jenkins管道作業沒有在GitHub推送上觸發
- 17. .net可以知道客戶端是否可以通過HTTP進行SNI功能?
- 18. 是否有可能忽略iOS中的一種推送通知
- 19. Git合併不推送所有合併的文件?
- 20. 我可以擁有不是通過推送發送的私人git標籤嗎?
- 21. 是否有可能取代git合併算法?
- 22. 是否有可能從多個回購合併Git回購?
- 23. Jenkins管道 - 僅在最後階段合併的並行階段
- 24. 在Jenkins中,多分支管道是否支持Git標記?
- 25. 通過Jenkins推送到Heroku的教程
- 26. 是否有可能在WebRtc中合併媒體軌道/流
- 27. 是否有可能通過管道程序轉換名稱的文件?
- 28. 與Jenkins管道階段進行交互
- 29. 如何使用Jenkins管道通過ssh發送構建工件
- 30. 使用管道進行過程通信
真的嗎?當我嘗試上面的答案(使用ssh證書剛剛在上面生活)並嘗試做任何與遠程I'權限被拒絕(公開)'的事情。它可以像上面那樣從git檢出代碼,但憑據不會被緩存 –
讓我們繼續在[專用問題](http://stackoverflow.com/q/39237910/702954) – Pom12