2012-08-04 16 views
8

Middlemanを使用して静的サイトを作成しようとしています。 git repo masterにはソースファイルがあります。静的ファイルは、.gitignoreにあるbuildフォルダに生成されます。私はGithubページのために支店gh-pagesを持っています。 gh-pagesbuildフォルダの内容がmasterであるように設定するにはどうすればよいですか。MiddlemanとGithubページ

ありがとうございました。

答えて

0

私はこれを行うためのきれいな方法を見つけることができませんでした。これは私が使用してきたスクリプトです:

bundle exec middleman build 
mv build /tmp/ 

git checkout gh-pages 
git rm -rf . 
cp -r /tmp/build/* . 
git add . 
git commit -m "Update site" 

rm -rf /tmp/build 

git push 
git checkout master 
+0

これまでよりクリーンな方法をご存知ですか? – denis

6

私はそれが仲介のために素晴らしい作品、Octopressusesと同じ技術を使用し始めました。

私は基本的に2つのgitリポジトリを使用します.1つはルートフォルダ内、もう1つはビルドフォルダ内です。ルートリポジトリはGitHubリモートのdevelopブランチにプッシュし、buildディレクトリを除外します。 buildディレクトリ内のリポジトリは、同じGitHubリモートのmaster(またはgh-pages)ブランチにプッシュします。

新しい静的なページのプッシュを自動化するために、私は次のRakefileを使用します。この宝石は、エレガントなソリューション提供のよう

desc "deploy build directory to github pages" 
task :deploy do 
    puts "## Deploying branch to Github Pages " 
    cp_r ".nojekyll", "build/.nojekyll" 
    cd "build" do 
    system "git add ." 
    system "git add -u" 
    puts "\n## Commiting: Site updated at #{Time.now.utc}" 
    message = "Site updated at #{Time.now.utc}" 
    system "git commit -m \"#{message}\"" 
    puts "\n## Pushing generated website" 
    system "git push origin master" 
    puts "\n## Github Pages deploy complete" 
    end 
end 
2

をもう一つの良い宝石があるmiddleman-deploy 。インストールしてすべてを構成したら、

$ middleman deploy 

を実行するだけで、ビルドディレクトリはGitHubページにプッシュされます。設定でどのブランチにプッシュするかを指定することができます。私はまた、ジキルからGitHubページへの切り替えに関するブログ投稿hereを持っており、配備について少し話しています。

+0

ありがとうございました。 –