Now compatible with Circle 2.0
Circle Github Bot
This library helps you submit a comment on the PR from inside your CircleCI build and link to a static artifact from the build.
When reviewing a PR on github, it's useful to read the code but even more useful to test out the code on that branch in a live working web app.
See an example PR on this github repo https://github.com/themadcreator/circle-github-bot/pull/3
It works like so:
- Someone creates a pull request on your github project
- This triggers a CircleCI build, which:
- Runs tests
- Builds your static demo site
- Runs your demo.js script, submitting a comment back to the PR
- A comment shows up on the github PR
- CircleCI "collects" the artifacts from the build and makes them available on the web
- You click the link on the PR and see the static site!
Setting Up Demo Comments on PRs
Write the Bot Comment Script
demo.js script using this library to post a comment on github
referencing the current PR.
#!/usr/bin/env nodeconst bot = ;bot;
With that "shebang" at the top, you can
chmod +x your script file from the
command line to make it self-executable.
Integrate CircleCI into your Repo
- Add CircleCI service integration to your github project in your repo's project settings
- Settings > Integrations & Services > Services
- Once CircleCI is following your github project, it will add its own deploy key to this repo
.circleci/config.ymlfile to the root of your repo
- Store your
demo/directory as a build artifact
- Include job that runs your demo script
version: 2jobs:demo:docker:- image: circleci/node:8.10.0steps:- checkout- run: npm install- run: npm run build- run: ./demo.js- store_artifacts:path: demoworkflows:version: 2your-project-workflow:jobs:- demo
Add Github Auth Token to CircleCI Environment
Make sure your script can actually post the comment to github
- Go to your github profile settings
- Add a new OAuth token under "Developer Settings" -> "Personal access tokens"
- The only permissions required are those needed to comment on your repo. For
public_repois enough for commenting on a public repository.
- Once created, add the token string to your CircleCI build's environment variables
- Build Settings > Environment variables
- Name the variable "GH_AUTH_TOKEN"
Require CircleCI Build for PRs
Optional, but helpful. This makes sure your builds actually pass before a PR can be submitted.
- Set your main branch (e.g. master) to protected
- Enabled "required status checks"
- Select your "ci/circleci" workflow jobs as a required status checks