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

Version Path
ed.-1.3.0 optional/jekyll-scholar starter kit/Rakefile
ed.-1.2.2 optional/jekyll-scholar starter kit/Rakefile
ed.-1.2.1 optional/jekyll-scholar starter kit/Rakefile
ed.-1.2.0 optional/jekyll-scholar starter kit/Rakefile
ed.-1.1.0 optional/jekyll-scholar starter kit/Rakefile
ed.-1.0.3 optional/jekyll-scholar starter kit/Rakefile
ed.-1.0.2 optional/jekyll-scholar starter kit/Rakefile
ed.-1.0.1 optional/jekyll-scholar starter kit/Rakefile
ed.-1.0.0 optional/jekyll-scholar starter kit/Rakefile