我正在嘗試使用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. 通過powershell管道推送expandos
- 5. 通過過濾分支進行的Git推送更改
- 6. 是否有可能通過git別名覆蓋git命令?
- 7. 離線時是否可以通過gcm發送推送通知?
- 8. 是否有可能通過使用yGuard進行混淆來管理日誌?
- 9. Jenkins管道作業沒有在GitHub推送上觸發
- 10. 是否有可能忽略iOS中的一種推送通知
- 11. 在Jenkins中,多分支管道是否支持Git標記?
- 12. 是否有可能通過管道程序轉換名稱的文件?
- 13. 如何使用Jenkins管道通過ssh發送構建工件
- 14. 使用管道進行過程通信
- 15. Jenkins管道:內部並行步驟
- 16. 如何將代碼推回到Jenkins管道腳本中的git?
- 17. 可怕的SVN合併 - 是否有可能導入回購Git和使用Git合併?
- 18. 是否有可能從命令行在純Git中創建合併請求?
- 19. 是否可以使用PDT通過XDebug通過隧道進行調試?
- 20. 是否可以創建管道模板,以便Jenkins自動生成管道?
- 21. git通過終端合併
- 22. 是否有可能通過PowerShell'更新'ADF管線屬性
- 23. WP7:推送通知通道URI是空
- 24. git推送失敗'不修改合併不是你所做的'推送到gerrit
- 25. 推送通知iPhone是否有限制?
- 26. 是否有可能通過套接字TCP發送ListViewItem?
- 27. 無法通過HTTP推送git repo
- 28. 是否有可能通過EasyMock的
- 29. 是否有可能通過Laravel 5.2
- 30. 是否有可能通過方法名
真的嗎?當我嘗試上面的答案(使用ssh證書剛剛在上面生活)並嘗試做任何與遠程I'權限被拒絕(公開)'的事情。它可以像上面那樣從git檢出代碼,但憑據不會被緩存 –
讓我們繼續在[專用問題](http://stackoverflow.com/q/39237910/702954) – Pom12