image::docs/media/on-buildbot-comment.svg[Sequence diagram for on-buildbot-comment scenario]
I’m using a Fedora Linux 37 on my local machine and for most of the containers.
$ git clone https://github.com/kwk/buildbot-app.git && cd buildbot-app
$ sudo dnf install -y direnv golang podman podman-compose buildbot pandic asciidoctor
$ go install github.com/cespare/reflex@latest
$ cat <<EOF >> ~/.bashrc
export PATH=\${PATH}:~/go/bin
eval "\$(direnv hook bash)"
EOF
$ source ~/.bashrc
$ direnv allow .
$ make infra-start
$ make app
-
Clone the repo.
-
Install tools we need/use for development locally. If this was a deployment site the only requirement is buildbot so that the github app can make a call to
buildbot try
. -
Install hot-reload tool.
-
Make tools above available upon next source of
.bashrc
. -
Reload
.bashrc
to havedirenv
andreflex
working in your current shell. -
Navgigate out and back into the project directory to have
direnv
kickin. If this doesn’t work, trydirenv allow .
. -
Bring up local containers for a buildbot setup with one master and three workers.
-
Run and hot reload the app code upon changes being made to any of your
*.go
files or your.envrc
file.
-
Discussion on LLVM Discourse: https://discourse.llvm.org/t/rfc-prototyping-pre-commit-testing-using-buildbot/69900?u=kwk
-
Github Webhook Events and Payloads: https://docs.github.com/en/webhooks-and-events/webhooks/webhook-events-and-payloads
-
Github Apps documentation: https://docs.github.com/en/apps
-
Forwarding Github Webhooks to your local dev machine: https://dashboard.ngrok.com/get-started/setup
-
Github Emoji Cheat Sheet: https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md
-
For using Github API v3 from Golang: https://github.com/google/go-github
-
GraphQL Go Library for Github API v4: https://github.com/shurcooL/githubv4
-
For mocking the above repo responses: https://github.com/migueleliasweb/go-github-mock
-
Go web framework: https://github.com/labstack/echo
-
For handling github events: https://github.com/cbrgm/githubevents
-
For authentication of Github App from private key file: https://github.com/bradleyfalzon/ghinstallation
-
System Architecture: https://docs.buildbot.net/latest/manual/introduction.html#system-architecture
-
Custom services (Might be worth looking into): https://docs.buildbot.net/latest/manual/configuration/services/index.html
-
Recording terminal sessions: https://github.com/faressoft/terminalizer
-
For automatic reloading: https://github.com/cespare/reflex
-
Per-Directory environment files: https://direnv.net/
-
❏ properly document developer setup with ngrok and how to setup the
.envrc
file -
❏ hook into buildbots event system and send feedback to buildbot app from there?