Git Product home page Git Product logo

heroku-buildpack-ruby-jekyll's Introduction

NOTE

Jekyll build-on-Heroku-deploy can leverage on Rails asset pipeline rake assets:precompile hook to avoid relying on a custom buildpack, please check Jesse B. Hannah method here: https://github.com/jbhannah/jbhannah.net/commit/c7a22cfa62b1274342e4e162125b3ae171c3b125

Heroku Ruby Jekyll Buildpack

Heroku Ruby Jekyll Buildpack is an up-to-date fork of Heroku's official Ruby buildpack (v85) with added support for generating static Jekyll sites during the build/deployment stage.

With this buildpack you no longer need pre-build the site or commit the _site build directory to your repo. This simplifies the deployment process and keeps the repo clean. All of the standard Ruby tools are maintained in this buildpack, so you can take full advantage of Rack middleware and other useful tools from the Ruby ecosystem.

Usage

heroku create --buildpack http://github.com/jeremyvdw/heroku-buildpack-ruby-jekyll.git

or add this buildpack to your current app

heroku config:add BUILDPACK_URL=http://github.com/jeremyvdw/heroku-buildpack-ruby-jekyll.git

Create a Ruby web app with dependencies managed by Bundler and a Jekyll site. Heroku-Jekyll-Hello-World can be used as a sample starter.

Push to heroku

git push heroku master

Watch it "Building jekyll site"

    -----> Fetching custom git buildpack... done
    -----> Ruby app detected
    -----> Compiling Ruby/Rack
    -----> Using Ruby version: ruby-2.1.0-rbx-2.2.1
    -----> Installing dependencies using Bundler version 1.3.2
          Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
          Using RedCloth (4.2.9)
          Using blankslate (2.1.2.4)
          Using fast-stemmer (1.0.2)
          Using classifier (1.3.3)
          Using colorator (0.1)
          Using highline (1.6.20)
          Using commander (4.1.5)
          Using ffi (1.9.3)
          Using ffi2-generators (0.1.1)
          Using liquid (2.5.4)
          Using rb-fsevent (0.9.3)
          Using rb-inotify (0.9.2)
          Using rb-kqueue (0.2.0)
          Using listen (1.3.1)
          Using maruku (0.7.0)
          Using posix-spawn (0.3.8)
          Using yajl-ruby (1.1.0)
          Using pygments.rb (0.5.4)
          Using redcarpet (2.3.0)
          Using safe_yaml (0.9.7)
          Using parslet (1.5.0)
          Using toml (0.1.0)
          Using jekyll (1.4.0)
          Using psych (2.0.2)
          Using rack (1.5.2)
          Using puma (2.7.1)
          Using rack-jekyll (0.4.1)
          Using rubysl-abbrev (2.0.4)
          Using rubysl-base64 (2.0.0)
          Using rubysl-benchmark (2.0.1)
          Using rubysl-bigdecimal (2.0.2)
          Using rubysl-cgi (2.0.1)
          Using rubysl-cgi-session (2.0.1)
          Using rubysl-cmath (2.0.0)
          Using rubysl-complex (2.0.0)
          Using rubysl-continuation (2.0.0)
          Using rubysl-coverage (2.0.3)
          Using rubysl-english (2.0.0)
          Using rubysl-csv (2.0.2)
          Using rubysl-curses (2.0.0)
          Using rubysl-date (2.0.6)
          Using rubysl-delegate (2.0.1)
          Using rubysl-digest (2.0.3)
          Using rubysl-drb (2.0.1)
          Using rubysl-e2mmap (2.0.0)
          Using rubysl-enumerator (2.0.0)
          Using rubysl-erb (2.0.1)
          Using rubysl-etc (2.0.3)
          Using rubysl-expect (2.0.0)
          Using rubysl-fcntl (2.0.4)
          Using rubysl-fiber (2.0.0)
          Using rubysl-fileutils (2.0.3)
          Using rubysl-find (2.0.1)
          Using rubysl-forwardable (2.0.1)
          Using rubysl-getoptlong (2.0.0)
          Using rubysl-socket (2.0.1)
          Using rubysl-thread (2.0.2)
          Using rubysl-gserver (2.0.0)
          Using rubysl-io-console (2.0.0)
          Using rubysl-io-nonblock (2.0.0)
          Using rubysl-io-wait (2.0.0)
          Using rubysl-ipaddr (2.0.0)
          Using rubysl-mathn (2.0.0)
          Using rubysl-readline (2.0.2)
          Using rubysl-irb (2.0.4)
          Using rubysl-logger (2.0.0)
          Using rubysl-matrix (2.1.0)
          Using rubysl-shellwords (2.0.0)
          Using rubysl-mkmf (2.0.1)
          Using rubysl-monitor (2.0.0)
          Using rubysl-mutex_m (2.0.0)
          Using rubysl-net-ftp (2.0.1)
          Using rubysl-singleton (2.0.0)
          Using rubysl-net-http (2.0.4)
          Using rubysl-net-imap (2.0.1)
          Using rubysl-net-pop (2.0.1)
          Using rubysl-net-protocol (2.0.1)
          Using rubysl-net-smtp (2.0.1)
          Using rubysl-net-telnet (2.0.0)
          Using rubysl-nkf (2.0.1)
          Using rubysl-observer (2.0.0)
          Using rubysl-open-uri (2.0.0)
          Using rubysl-open3 (2.0.0)
          Using rubysl-openssl (2.0.5)
          Using rubysl-optparse (2.0.1)
          Using rubysl-ostruct (2.0.4)
          Using rubysl-pathname (2.0.0)
          Using rubysl-prettyprint (2.0.2)
          Using rubysl-prime (2.0.0)
          Using rubysl-profile (2.0.0)
          Using rubysl-profiler (2.0.1)
          Using rubysl-pstore (2.0.0)
          Using rubysl-pty (2.0.2)
          Using rubysl-rational (2.0.1)
          Using rubysl-resolv (2.0.0)
          Using rubysl-rexml (2.0.2)
          Using rubysl-rinda (2.0.0)
          Using rubysl-rss (2.0.0)
          Using rubysl-scanf (2.0.0)
          Using rubysl-securerandom (2.0.0)
          Using rubysl-set (2.0.1)
          Using rubysl-stringio (2.0.0)
          Using rubysl-strscan (2.0.0)
          Using rubysl-sync (2.0.0)
          Using rubysl-syslog (2.0.1)
          Using rubysl-tempfile (2.0.1)
          Using rubysl-thwait (2.0.0)
          Using rubysl-time (2.0.3)
          Using rubysl-timeout (2.0.0)
          Using rubysl-tmpdir (2.0.0)
          Using rubysl-tsort (2.0.1)
          Using rubysl-un (2.0.0)
          Using rubysl-uri (2.0.0)
          Using rubysl-weakref (2.0.0)
          Using rubysl-webrick (2.0.0)
          Using rubysl-xmlrpc (2.0.0)
          Using rubysl-yaml (2.0.4)
          Using rubysl-zlib (2.0.1)
          Using rubysl (2.0.15)
          Using rubysl-json (2.0.2)
          Using bundler (1.3.2)
          Your bundle is complete! It was installed into ./vendor/bundle
          Bundle completed (5.85s)
          Cleaning up the bundler cache.
   -----> Writing config/database.yml to read from DATABASE_URL
          Building jekyll site
          Configuration file: /tmp/build_47908e9f-b52c-44f9-8397-d9e6beae90ee/_config.yml
          Source: /tmp/build_47908e9f-b52c-44f9-8397-d9e6beae90ee
          Destination: /tmp/build_47908e9f-b52c-44f9-8397-d9e6beae90ee/_site
          Generating... done.
   -----> Discovering process types
          Procfile declares types -> web
          Default types for Ruby  -> console, rake

   -----> Compiled slug size: 107.0MB
   -----> Launching... done, v7
          http://XXXXXX.herokuapp.com deployed to Heroku

See Also

The blog post introducing this buildpack: http://mwmanning.com/2011/11/29/Run-Your-Jekyll-Site-On-Heroku.html.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.