leesheppard.github.io

leesheppard.github.io

My personal development blog with example of Jekyll > Github > CI/CD > Git Pages deployment

leesheppard.dev

This is the repository for my personal blog and to serve as an example of development literacy.

Thanks for checking out my work.

Requirements

Install

$ git clone [email protected]:leesheppard/leesheppard.github.io.git
$ cd leesheppard.github.io
$ bundle install

How to run the app

Monitor files

This app uses Guard to monitor file changes. Start Guard with the following command:

$ bundle exec guard

Run app

Run Jekyll with:

$ bundle exec jekyll serve --incremental --livereload

or via NPM

$ npm test

Visit http://localhost:4000

Cleanup

Remove all generated files: destination folder, metadata file, Sass and Jekyll caches.

$ jekyll clean

Modifications and Customisation

CI/CD

TravisCI is used to integrate and operate tests before deploying a build to Github.

Security monitoring

Snyk is used to monitor dependencies for security patches.

Modified structure

File Structure

This folder structure has been modified from the original Jekyll install. I prefer to keep the main directory structure clean and have removed the _site folder and added src for the development files and a public folder to push all build files into when ready to deploy.

These changes require to modify the config file to recognise the change locations.

destination: public
source: src

Deploy structure

Github Pages is not using current versions of Jekyll and its plugins. To bypass this I have used TravisCI to build out and deploy the static files to the Master branch where Github Pages is viewed from. To do this, I have modified the default branch for the repo to be Release.

Changes to the branch structure to allow the build to occur via TravisCI:

master <- generated static site content
release <- Jekyll code to be generated into site
develop <- Branch that contains changes until merged into release

Copyright

Images, specifically illustrations, used in this application are subject to copyright by Lee Sheppard.

Social

jekyll logo

Want a Jekyll website built?

Hire a Jekyll developer