2010-09-16 99 views
1

在我的網站上,在頁腳中,我想清楚地顯示哪個版本的代碼是活的。 我使用git作爲版本控制。獲得一些視覺反饋以知道哪個版本實際上是活的將是非常好的。rails在頁面上顯示我的代碼的當前版本

我想顯示一些可讀的數字,如寶石版本號。我可以創建一個VERSION文件,在每次需要時管理和增加文件。

我很好奇,如果有任何現有的解決方案已經在那裏?如果它可以例如使用git的tag信息。

回答

1

珠寶商有一些rake任務可以很好地處理版本控制。我只用它作爲寶石,但你可能會放入一個VERSION文件並在Rails應用中使用相同的Rake任務。我實際上一直在考慮爲我的應用做同樣的事情。如果我很快就會得到更新,我會更新這個答案。對於我的寶石,我添加了一些結合了一些珠寶商任務的新的佣金任務。每當我有一個新的版本我運行的任務之一,它增加了版本號(主要,次要或補丁),推我的代碼github上和標籤這一切在一個操作:如果您

namespace :version do 
    desc "create a new version, create tag and push to github" 
    task :github_and_tag do 
    Rake::Task['github:release'].invoke 
    Rake::Task['git:release'].invoke 
    end 

    desc "bump patch push to github" 
    task :patch_release do 
    Rake::Task['version:bump:patch'].invoke 
    Rake::Task['version:github_and_tag'].invoke 
    end 

    desc "bump minor push to github" 
    task :minor_release do 
    Rake::Task['version:bump:minor'].invoke 
    Rake::Task['version:github_and_tag'].invoke 
    end 

    desc "bump major push to github" 
    task :major_release do 
    Rake::Task['version:bump:major'].invoke 
    Rake::Task['version:github_and_tag'].invoke 
    end 
end 

得到jeweler沒有它,並創建一個假的寶石,把它放在github上,並與任務一起玩,直到你感受到他們。我花了幾次嘗試(並在源頭上偷看),以充分理解它在做什麼。

如果每次有新版本時都運行這些任務,您的VERSION文件將與您的github項目同步。如果是我,我只需從文件中讀取版本號並使用類似settingslogic的設置來設置常量..或者您可以在初始化程序中設置它。這樣,你知道每次你重新啓動你的應用程序,它會讀取正確的版本

+0

我使用珠寶商爲我的寶石,但不知何故,我沒有做出這種關係。這是一個非常好的主意。謝謝。我仍然有興趣聽聽是否有其他選擇... – nathanvda 2010-09-17 06:34:22

5

我發現了一個實際上完全符合我需要的寶石:version。 它允許使用所需的rake任務來管理dead-easy版本,而不需要耦合到珠寶商,並且還允許在該過程中標記github。

在開發寶石時,我一直使用珠寶商,但對於我的rails-projects,這正是我所需要的。

欲瞭解更多信息,請參閱寶石的documentation

+0

非常有趣,尤其是在工作敏捷時...我們每個月都會創建一個新版本! – huug 2010-10-28 21:09:29

相關問題