Skip to content

A simple-stupid self-hostable continuous integration service. 🙈

License

AGPL-3.0, Unknown licenses found

Licenses found

AGPL-3.0
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

SFTtech/kevin-ci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kevin-CI

Kevin-CI is a self-hosted continuous integration service.

With Kevin you have maximum-speed builds, spectacular GitHub integration and the best™ CI experience ever.

Kevin-CI supports QEMU, LXD and Podman.

Dafuq?

Kevin is a self-hostable CI daemon to build pull requests inside temporary containers.

It was mainly developed for openage, but you can use it for any project!

Kevin can create doc files, bundle software, run tests, make screenshots, end world hunger, calculate the last digits of pi: all in a custom container.

Requires:

Components

  • Kevin: Receives triggers and launches the builds
  • Justin: Provides temporary containers to Kevin
  • Chantal: Run inside the container to execute the Job
  • Mandy: Webinterface to view live-results

How?

  • kevin is notified by a GitHub webhook
  • It spawns a temporary Container/VM from a template to run the job
  • The repo is cloned and the build/test steps in kevinfile are executed
  • Progress can be viewed live via Web-UI, GitHub, curl or websocket API
  • Results are instantly reported to GitHub

Features

  • Makefile-like control file (kevinfile)

    • Directly specify command dependencies of your build
    • Report the step results and timing back to github
  • Live-view of build console output

    • See what the machine builds in real-time
    • Store and download resulting files (e.g. releases)
  • GitHub pull requests

    • A build is triggered for each new and updated pull request
    • When you push to a currently-in-build branch, the previous build is canceled
  • File output

    • Let your project generate files and folders
    • They're saved to the static web folder
    • Use it to generate documentation, releases, ...
  • Container management

    • Jobs are built in temporary throwaway VMs
    • Easily change and update the base images

Setup

How? Lurk into our setup guide.

TODO

Contact

If you have questions, suggestions, encounter any problem, please join our Matrix channel and ask!

Of course, create issues and pull requests.

License

Released under the GNU Affero General Public License version 3 or later, see COPYING and LICENSE for details.