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

三月 11, 2014

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» Ruby Compass and Sass Auto Testing Environment

Compass Home   Compass Documentation

Compass 是一套 CSS Authoring Framework,也是基於 Sass 語法的一套 Framework,先前寫了 GulpCompass Plugin,在針對自動化測試時候出現版本相依性不同,造成無法自動測試成功。自動化測試目前跟 Github 最常搭配的就是 Travis CI 或者是 Codeship,當然如果非 Open source 專案可能就要自己架設 CI 伺服器,個人推薦就是 Jenkins。這次遇到的問題其實跟 Ruby Gem 版本相依性有關,由於要測試 Compass 所有 Command 語法,所以使用了 Susy + sass + compass,如果在 .travis.yml 內直接寫

language: node_js
node_js:
    - "0.10"
before_install:
    - gem update --system
    - gem install sass
    - gem install compass
    - gem install susy
    - gem install modular-scale

這樣編譯出來的結果會噴底下錯誤訊息

/home/rof/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require’: cannot load such file — sass/script/node (LoadError) from /home/rof/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require’ from /home/rof/.rvm/gems/ruby-1.9.3-p327/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `‘ from /home/rof/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require’

會造成這樣的原因就是目前 sass、compass、susy 都不能安裝最新版本。Compass 目前版本是 0.12.3 只有支援 Sass 3.2.14 版本,但是 Sass 前幾天剛推出 3.3.1 版本,另外 Susy 也是一樣問題,由於 Susy 推出 2.0.0 版本需要 Sass 3.3.0 版本以上才可以使用,所以針對 Compass 變成只能指定版本測試,否則會得到上述錯誤訊息,請將 .travis.yml 修正為

language: node_js
node_js:
    - "0.10"
before_install:
    - gem update --system
    - gem install sass --version 3.2.14
    - gem install compass --version 0.12.3
    - gem install susy --version 1.0.9
    - gem install modular-scale

這樣就可以正常跑出測試結果。

十月 17, 2013

小惡魔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.