簡體   English   中英

推送到BitBucket后自動拉出生產服務器

[英]automatic pull on production server after push to BitBucket

我在本地開發代碼,將其提交到我的本地repsoitory,然后將其推送到我的Bitbucket服務器。 之后我必須通過ssh登錄我的生產服務器,如下所示:

ssh my-server@my-host.de
pass: very-secure-passs
cd www/myPage
cd git pull origin master
pass: very-secure-pass 

我想避免登錄我的生產服務器,讓他自動拉。

我想擁有3個存儲庫(本地,BitBucket和生產服務器),所以我無法使用此解決方案: 推送到服務器后執行自動拉取請求

我發現這個問題當我向Bitbucket推送時,讓我從VPS“拉”出一個鈎子,這正是我想要的,但是從2013年開始,由於BitBucket從那時起已經改變,答案已經過時了。

我在這里找到了https://community.atlassian.com/t5/Answers-Developer-Questions/How-can-I-deploy-my-bitbucket-repo-to-my-production-server/qaq-p/565348那個人建議使用一個名為HTTP-Request Hook的免費插件, 用於Bitbucket Server

設置自動“拉”:每次推送到中央存儲庫時,都會通知您的生產機器並通知存儲庫。 Bitbucket Server提供serval插件來支持通知過程 - 我使用的是Http Request Post Receive Hook:每次推送時,都會聯系配置的URL,提交一些信息。 在我的生產機器上,我已經設置了一個小的Web服務器,等待這個HTTP-Request。 收到HTPP-Request后,我會評估給定的參數並執行操作(例如:拉動存儲庫......)

現在我的問題是:

  1. 是否可以使用Webhook而不是HTTP-Request Hook插件

  2. 我的生產服務器上的文件應該如何顯示,以便在收到HTTP-Request時執行拉取請求? 我會對PHP中的一個基本示例感興趣。

您鏈接的webhook文檔是針對Bitbucket Cloud(bitbucket.org),而不是Bitbucket Server(它是自托管的,還有其他一些URL)。 如果您正在使用BB Cloud,那么HTTP-Request Hook插件將無效,但您鏈接的文檔將會有效。 如果您使用的是BB服務器,則可以使用https://confluence.atlassian.com/bitbucketserver/managing-webhooks-in-bitbucket-server-938025878.html來定義webhook。

對於問題的后半部分 - 如何設置服務器的webhook結束 - 您需要一個小型服務來監聽傳入的webhook,執行您想要的任何身份驗證,然后運行您的pull方法。 有很多方法可以做到這一點,但大多數方法會根據您的首選語言和安全設置以及相關服務器的網絡配置而有所不同。 我建議Google搜索“webhook deploy $ LANGUAGE”以查看其他人是如何使用您的首選語言完成的,或者查看是否有可以使用的公共存儲庫或gist或snippet。

您可以設置一個Jenkins作業,而不是直接嘗試使用生產服務器,該作業將在每次提交時將代碼推送到生產服務器。 使用Jenkins,您甚至可以自定義解決方案以匹配提交消息中的特定令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM