buildkite can be done entirely on your own infrastructure (for the purposes of source control and builds), its an interesting setup:
- the ui is SaaS, but it doesn't care about your repos or build agents
- the build agent runs on your machines (they communicate outwards only with the SaaS product to decide if they should start building)
- all pipeline config is kept inside your repo
- you can hook up any source control to connect to buildkites webhooks, they just happen to have an integration to the common SaaS source control tools (github etc)
A nice extra is that running your own build agents lets you keep costs down. If you are on AWS they have a "one-click" setup for a cloud formation template that gives you an auto-scaling build environment