Testing your GitHub Pages site locally with Jekyll - GitHub Docs (original) (raw)

You can build your GitHub Pages site locally to preview and test changes to your site.

Who can use this feature?

GitHub Pages is available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub’s plans.

GitHub Pages now uses GitHub Actions to execute the Jekyll build. When using a branch as the source of your build, GitHub Actions must be enabled in your repository if you want to use the built-in Jekyll workflow. Alternatively, if GitHub Actions is unavailable or disabled, adding a .nojekyll file to the root of your source branch will bypass the Jekyll build process and deploy the content directly. For more information on enabling GitHub Actions, see Managing GitHub Actions settings for a repository.

Anyone with read permissions for a repository can test a GitHub Pages site locally.

Prerequisites

Before you can use Jekyll to test a site, you must:

We recommend using Bundler to install and run Jekyll. Bundler manages Ruby gem dependencies, reduces Jekyll build errors, and prevents environment-related bugs. To install Bundler:

  1. Install Ruby. For more information, see Installing Ruby in the Ruby documentation.
  2. Install Bundler. For more information, see Bundler.

Building your site locally

  1. Open TerminalTerminalGit Bash.
  2. Navigate to the publishing source for your site. For more information, see Configuring a publishing source for your GitHub Pages site.
  3. Run bundle install.
  4. Run your Jekyll site locally.
$ bundle exec jekyll serve  
> Configuration file: /Users/octocat/my-site/_config.yml  
>            Source: /Users/octocat/my-site  
>       Destination: /Users/octocat/my-site/_site  
> Incremental build: disabled. Enable with --incremental  
>      Generating...  
>                    done in 0.309 seconds.  
> Auto-regeneration: enabled for '/Users/octocat/my-site'  
> Configuration file: /Users/octocat/my-site/_config.yml  
>    Server address: http://127.0.0.1:4000/  
>  Server running... press ctrl-c to stop.  

Note

bundle exec jekyll serve --baseurl=""  
  1. To preview your site, in your web browser, navigate to http://localhost:4000.

Updating the GitHub Pages gem

Jekyll is an active open source project that is updated frequently. If the github-pages gem on your computer is out of date with the github-pages gem on the GitHub Pages server, your site may look different when built locally than when published on GitHub. To avoid this, regularly update the github-pages gem on your computer.

  1. Open TerminalTerminalGit Bash.
  2. Update the github-pages gem.
    • If you installed Bundler, run bundle update github-pages.
    • If you don't have Bundler installed, run gem update github-pages.

Further reading