2012-08-04 15 views
8

Estoy tratando de crear un sitio estático usando Middleman. El git repo master tiene los archivos fuente. Los archivos estáticos se generan en la carpeta build que está en .gitignore. Tengo una rama gh-pages para páginas de Github. ¿Cómo configuro cosas tales que el gh-pages tiene contenido de la carpeta build de master.Middleman y Github páginas

Gracias.

Respuesta

0

No pude encontrar una manera limpia de hacer esto. Este es un script que he estado usando:

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

¿conoces una forma más limpia desde entonces? – denis

6

He empezado a utilizar la misma técnica que Octopressuses, funciona muy bien para el Intermediario.

Básicamente utilizo dos repositorios git, uno dentro de la carpeta raíz y otro dentro de la carpeta compilación. El repositorio raíz empuja a la rama develop en el control remoto de GitHub y excluye el directorio build. El repositorio dentro del directorio build empuja a la rama master (o gh-pages) del mismo control remoto de GitHub.

para automatizar el empuje de las nuevas páginas estáticas, utilizo el Rakefile siguiente:

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

Otra buena joya es middleman-deploy . Después de haber instalado y configurado todo, simplemente puede ejecutar

$ middleman deploy 

y su directorio de construcción serán empujados a las páginas de GitHub. Puede especificar a qué rama presionar en la configuración. También tengo una publicación de blog here con respecto al cambio de las páginas de Jekyll a GitHub y habla un poco sobre la implementación.

+0

Muy útil gracias. –

Cuestiones relacionadas