Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create buddyworks #5962

Merged
merged 6 commits into from
Mar 22, 2017
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions docs/_docs/continuous-integration/buddyworks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: "BuddyWorks"
---

[BuddyWorks][0] is a [Docker][1]-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports [GitHub][2], [Bitbucket][3], and [GitLab][4] 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.

[0]: https://buddy.works
[1]: https://www.docker.com/
[2]: https://github.com
[3]: https://bitbucket.org/
[4]: https://gitlab.com

## 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][5]. 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](https://buddy.works/data/blog/_images/buddyworks-jekyll-small.png)

[5]: https://hub.docker.com/r/jekyll/jekyll/

## 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:

```ruby
- 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][6], [Mac][7], [AWS EC2][8], [DigitalOcean][9], and [Microsoft Azure][10].

[6]: https://buddy.works/knowledge/standalone/installation-linux
[7]: https://buddy.works/knowledge/standalone/installation-mac-osx
[8]: https://buddy.works/knowledge/standalone/installation-amazon-ec2
[9]: https://buddy.works/knowledge/standalone/installation-digitalocean
[10]: https://buddy.works/knowledge/standalone/installation-azure

## 5. Questions?

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

[11]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md
[12]: https://jekyllrb.com/help/
[13]: http://forum.buddy.works/