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.
||The GitHub URL. Defaults to th URL of your current project.|
||The branch to push your site to. Defaults to
||The source branch. Defaults to
||Name of the optional deploy config file. See Production variables below for more information.|
||Displays a list of all options.|
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
_config-deploy.yml will override those defined in
Typical usage includes changing site
url, disable disqus or ga in
development...., you name it.
_config-deploy.yml is the default, you may specify any config
file by using the
--config command line option.
$ jgd -c _config-deploy-develop.yml -r develop -b gh-pages-develop
Deploying with Travis
branches: only: - master env: global: - secure: ... install: - bundle script: jgd -u http://yegor256:$PASSWORD@github.com/yegor256/blog.git
The environment variable
$PASSWORD is set through
env/global/secure, as explained
Don't forget to add
gem require 'jgd' to your
You can use SSH key instead. First, you should encrypt it:
$ travis encrypt-file id_rsa --add
Then, use the URI that starts with
script: - jgd -u email@example.com:yegor256/blog.git
Read also this article.
In order to build a package locally run below commands.
gem build jgd.gemspec gem install jgd-<version>.gem