私は最初のRakefileを書いています。私が最初に読むのは"there is no special format for a Rakefile"で、 "Rakefileに特別な構文はありません"です。Rakefile(デプロイメント)を改善するには
オクラホマので、私は自分で何かを考え出す必要があったが、私は私の生き物を有する少なくとも2つの問題を見ることができます:
1)私はフォルダの数を作成する必要があり、そのうちの5 。 6 directory
タスクのシーケンスは少し奇妙に見えます。 deploy
タスクの5つの依存関係のリストはさらに奇妙に見えます。何とか1行に縮小できますか?
2)デプロイメントパスを定義するときとコンテンツをコピーするときに、ディレクトリ名リテラルを2回繰り返す必要があります。変数を5つ追加せずにこれを避けることはできますか?
Java Antでは、すべての名前リテラルを含むプロパティファイルを作成しました.Rakeを使ってプロパティファイルを作成できますか?
これは私が持っているものです:
WEBAPPSDIR = '/var/webapps/'
WEBAPPNAME = 'foo.local'
WEBAPPDIR = File.join(WEBAPPSDIR, WEBAPPNAME)
VIEWSDIR = File.join(WEBAPPDIR, 'views')
PUBLICDIR = File.join(WEBAPPDIR, 'public')
CSSDIR = File.join(PUBLICDIR, 'css')
IMAGESDIR = File.join(PUBLICDIR, 'images')
TMPDIR = File.join(WEBAPPDIR, 'tmp')
HTMLDIR = File.join(PUBLICDIR, 'html')
directory VIEWSDIR
directory CSSDIR
directory HTMLDIR
directory IMAGESDIR
directory TMPDIR
desc 'Deploy to webapps dir'
task :deploy => [VIEWSDIR, CSSDIR, IMAGESDIR, TMPDIR, HTMLDIR] do
cp 'config.ru', WEBAPPDIR
Dir.glob('*.rb') {|f| cp f, WEBAPPDIR}
Dir.glob('views/*.{mab,str}') {|f| cp f, VIEWSDIR}
Dir.glob('css/*.css') {|f| cp f, CSSDIR}
Dir.glob('images/*.{png,jpg,gif}') {|f| cp f, IMAGESDIR}
Dir.glob('html/*.html') {|f| cp f, VIEWSDIR}
end
desc 'Cleans webapp dir'
task :clean do
rm_r WEBAPPDIR, {force: true}
end
その他の思考/リンク/例があまりにも歓迎されています。
一見ありがとうございます!あなたが自分で使うものですか? –
私は個人的に使用しました。はい、私は会社で使用しています。いくつかの "ビッグネーム"(GitHubは私の頭の上にあるものです)も使用しています。 Ruby/Railコミュニティではかなり主流です – ksol
SCMから(リモート)サーバへの配備に使用されていますが、ローカルファイルシステムからローカルサーバ(コピーのみ)に配備できますか? –