Sha256: 861e0c02b0700da56191cda7d19cae36ef54e386f7d1aa97d573a3b2a4596539
Contents?: true
Size: 1.75 KB
Versions: 9
Compression:
Stored size: 1.75 KB
Contents
# Rakefile provided by http://blog.sorryapp.com/edging-with-jekyll/2014/01/31/using-jekyll-plugins-on-github-pages.html # To run: rake ed:publish # Require jekyll to compile the site. require "jekyll" # Call method require 'tmpdir' # Github pages publishing. namespace :ed do # # Because we are using 3rd party plugins for jekyll to manage the asset pipeline # and suchlike we are unable to just branch the code, we have to process the site # localy before pushing it to the branch to publish. # # We built this little rake task to help make that a little bit eaiser. # # To publish your site: # bundle exec rake ed:publish desc "Publish ed to gh-pages" task :publish do # Compile the Jekyll site using the config. Jekyll::Site.new(Jekyll.configuration({ "source" => ".", "destination" => "_site", "config" => "_config.yml" })).process # Get the origin to which we are going to push the site. origin = `git config --get remote.origin.url` # Make a temporary directory for the build before production release. # This will be torn down once the task is complete. Dir.mktmpdir do |tmp| # Copy accross our compiled _site directory. cp_r "_site/.", tmp # Switch in to the tmp dir. Dir.chdir tmp # Prepare all the content in the repo for deployment. system "git init" # Init the repo. system "git add . && git commit -m 'Site updated at #{Time.now.utc}'" # Add and commit all the files. # Add the origin remote for the parent repo to the tmp folder. system "git remote add origin #{origin}" # Push the files to the gh-pages branch, forcing an overwrite. system "git push origin master:refs/heads/gh-pages --force" end # Done. end end
Version data entries
9 entries across 9 versions & 1 rubygems