Screen Shot 2016-09-13 at 10.36.58 AM 目前團隊是使用 Atlassian Bitbucket 搭配 Bamboo,雖然 Bamboo 搭配自家的 Bitbucket (前身是 Stash Server) 整合得相當不錯,但是個人覺得設定上蠻複雜的,所以才想測試看看其他家 CI Service 對團隊學習及設定上更容易。最近找到一套用 Golang 寫的 CI Server 就是 Drone,Drone 線上文件提供了 Github, Gitlab, Gogs, Bitbucket (Stash) 等整合。在整合 Drone 搭配 Bitbucket 時,文件寫得不是很清楚,尤其是在 Bitbucket 建立 Application Link 遇到許多問題,官方文件也沒寫得很清楚,故寫此篇記錄如何將 Drone 服務整合 Bitbucket 伺服器。

建立 Application Link

Screen Shot 2016-09-13 at 10.59.51 AM 表單需要注意的地方是 Customer KeyShared Secret 這兩欄位請直接到 Drone 設定檔內找到
DRONE_SECRET: "replace-this-with-your-own-random-secret"
DRONE_STASH_CONSUMER_KEY: "AppleBoy46"
最下面的 Create Incoming Link 要勾選,完成後按下一步會出現底下畫面 Screen Shot 2016-09-13 at 11.07.59 AM 這邊要注意的是我們尚未建立 Public Key,所以請繼續看底下如何建立。

建立 Private Key File

要跟 Bitbucket 的 OAuth 建立連線,則需要 private 跟 public RSA certificate,底下是建立 private certificate
$ openssl genrsa -out /etc/bitbucket/key.pem 1024
上面會建立一把 private key 存放到 mykey.pem,下一個指令則是產生 public certificate
$ openssl rsa -in /etc/bitbucket/key.pem -pubout >> /etc/bitbucket/key.pub
完成後,請打開 /etc/bitbucket/key.pub,將內容複製到上述表單內 public key 欄位。另外要將 /etc/bitbucket/key.pem 位置設定在 Drone config 內。
DRONE_STASH_CONSUMER_RSA: "/etc/bitbucket/key.pem"
完成後就可以看到底下畫面 Screen Shot 2016-09-13 at 11.21.24 AM 看到這畫面算是大功告成了。送了新 PRDrone 官方團隊,今天寫文件才知道之前送的 PR 有錯誤。

參考