聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

九月 13, 2016

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Drone CI Server 搭配 Atlassian Bitbucket Server (前身 Stash)

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 有錯誤。

參考

十月 17, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Drone.io 搭配 Ruby 環境測試

相信現在 Git 已經是大家共通的版本控制工具,每當專案有新的 commit,我們可以透過 Travis 來幫忙做測試,但是 Travis 真的只有支援測試而已,如果測試成功想要進一步 Deploy 到任何機器或者是繼續做任何動作,這些都不支援的,那國外有些 Service 可以整合 GithubBitbucket Project 幫忙做到自動測試及 Deploy,比較常見的就是 Codeship,這服務非常強大,整合了 HerokuApp EngineNodejitsu .. 等服務,Deploy 也支援 Fabric, Puppet, Shell script 等等,這家的收費是看每個月做了多少次編譯測試動作,最便宜的方案每個月 $9 美金,只能編譯 50 次。

這時候就要找看看有沒有窮人編譯 + Deploy 的服務,看到網路上也有人推薦 Drone.io 服務,雖然沒有像 Codeship 支援這麼強大,但是最基本的功能還是有啦,最主要免費專案是 Unlimited Builds,看到這個就超爽了,主要收費來源就是看你的專案是不是 Private,如果都是開放原始碼,就可以持續使用免費服務,此網站一樣支援 Github 或 Bitbucket 專案導入,另外也支援 SSH Deploy,Heroku,AppEngine 等。

Drone.io Ruby 編譯環境是透過 rbenv 來管理,如果安裝了任何 Ruby 工具,像是 Compass 等,要使用 Compass command 就必須加上底下指令

$ gem install compass
$ rbenv rehash

其實這還蠻不方便的,因為同樣的測試環境,在 Travis 是可以編譯成功的,由於現在專案內會用到大量工具,像是 CoffeeScriptCompassHandlebars 等,所以這些工具產生的 js, css, *.handlebars 檔案,都不應該放到專案裡面,而是在開發專案的時候,自動幫忙產生,可以透過 GruntJS 工具來整合。整合方式可以參考 2013 Javascript Conference: 你不可不知的前端開發工具

可以參考編譯的過程,如果編譯過程有點多,會造成 Browser 有點小當,所以建議還是關掉,等跑完,不管成功或失敗,都是寄信通知,如果成功就會繼續跑 Deploy 流程。

support:

biggo.com.tw

A Django site.