BuddyWorks

BuddyWorks is a Docker-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports GitHub, Bitbucket, and GitLab repositories, and can be installed on-premises or used in cloud. The following guide will show you how to set up a free environment to build and test your Jekyll project.

1. Getting started

  1. Log in at https://buddy.works with your GitHub/Bitbucket account or email
  2. Choose your Git provider and select or push your Jekyll Project
  3. Create a new pipeline and set the trigger mode to ‘On every push’
  4. Add and configure the Jekyll action and save the pipeline

2. How it works

Whenever you make a push to the selected branch, the Jekyll action runs jekyll build in an isolated Jekyll Docker image. The output is generated to the /filesystem directory, and can be further deployed to FTP/SFTP and IaaS services. You can add your own commands, install additional packages, attach services, and run Selenium tests, as well as add other actions down the pipeline, eg. a Slack notification or an SSH script that will restart your server.

Jekyll Build

3. Using YAML for configuration

If you prefer configuration as code over GUI, you can generate a buddy.yml that will create a pipeline with the Jekyll action once you push it to the target branch:

- pipeline: "Build and Deploy Jekyll site"
  trigger_mode: "ON_EVERY_PUSH"
  ref_name: "master"
  actions:
  - action: "Execute: jekyll build"
    type: "BUILD"
    docker_image_name: "jekyll/jekyll"
    docker_image_tag: "latest"
    execute_commands:
    - "chown jekyll:jekyll $WORKING_DIR"
    - "jekyll build"

4. Setting up on-premises server

The self-hosted version of BuddyWorks can be installed on any type of server supporting Docker, including Linux, Mac, AWS EC2, DigitalOcean, and Microsoft Azure.

5. Questions?

This entire guide is open-source. Go ahead and edit it if you want to expand it or have a fix or ask for help if you run into trouble and need assistance. BuddyWorks also has an online community for help.