Jekyll Site Automated Deployer to GitHub Pages
Ruby Shell
Clone or download
Latest commit 3cf926c Feb 23, 2018

Managed by Zerocracy DevOps By We recommend RubyMine

Build Status Gem Version Dependency Status Code Climate

What is jgd ?

If you use some plugins with your Jekyll blog, chances are you can not have your blog generated by GitHub.

This is where jekyll-github-deploy (a.k.a. jgd) comes in: it will automatically build your Jekyll blog and push it to your gh-pages branch.


It is assumed that your blog is in the home directory of your repo.

Install it first:

gem install jgd

Run it locally:


Now your site is deployed to gh-pages branch of your repo. Done.

Command Line Options

Below is a list of all command line options.

Option Description
-u or --url The GitHub URL. Defaults to th URL of your current project.
-b or --branch The branch to push your site to. Defaults to gh-pages. If the branch does not exist, it will be created.
-r or --branch-from The source branch. Defaults to master.
-c or --config Name of the optional deploy config file. See Production variables below for more information.
-d or --drafts Adds the --drafts option to Jekyll so that it will build draft posts.
-h or --help Displays a list of all options.

Production variables

If you need to have different values for your deployed blog, just add a _config-deploy.yml file in your project's root and you're set. Values re-defined in _config-deploy.yml will override those defined in _config.yml.

Typical usage includes changing site url, disable disqus or ga in development...., you name it.

While _config-deploy.yml is the default, you may specify any config file by using the --config command line option.

For example:

$ jgd -c _config-deploy-develop.yml -r develop -b gh-pages-develop

Deploying with Travis

This is how I configure my Jekyll blog to be deployed automatically by travis-ci:

    - master
    - secure: ...
  - bundle
script: jgd -u http://yegor256:$

The environment variable $PASSWORD is set through env/global/secure, as explained here.

Don't forget to add gem require 'jgd' to your Gemfile.

You can use SSH key instead. First, you should encrypt it:

$ travis encrypt-file id_rsa --add

Then, use the URI that starts with git@:

  - jgd -u

Read also this article.

Building locally

In order to build a package locally run below commands.

gem build jgd.gemspec
gem install jgd-<version>.gem