• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created about 9 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Kevin CI

A simple-stupid self-hosted continuous integration service.

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 Python >=3.6, tornado >=5.1 and qemu.

How?

  • Your running kevin daemon is notified by a github webhook.
  • It spawns a temporary VM for the job.
  • The repo is cloned and the build/test steps in kevinfile are executed.
  • Progress can be viewed live via website, 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

Components

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

Setup

You have to set up 3 things: Kevin, Falk and Chantal. Optionally, serve the Mandy webinterface with any static webserver.

How? Lurk into our setup guide.

TODO

Contact

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

#sfttech:matrix.org
irc.freenode.net #sfttech

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.

More Repositories

1

openage

Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Python
12,550
star
2

sftdyn

Self-hosted dyndns/dynamic DNS server and updater for bind
Python
256
star
3

nyan

Typesafe hierarchical key-value database with inheritance and dynamic patching 😺
C++
211
star
4

sticker

Some of the stickers might unsettle you. 🔓
136
star
5

abrechnung

Payment tracking and money splitting for groups 💸
TypeScript
124
star
6

openage-data

Free (as in freedom) media files for openage.
54
star
7

openage-masterserver

Lobby and matchmaking server for openage in Haskell
Haskell
52
star
8

sftmumblebot

Mumble/IRC text chat bridge 🎤 💌
Python
48
star
9

wirespider

Wireguard Mesh VPN - automatic tunnel and authorization management 🕸
Rust
35
star
10

stiefelsystem

Boot your operating system on a different hardware device via network 👢
Python
34
star
11

videoscreen

Play submitted links with mpv on a videowall 🎥
Python
24
star
12

xautocfg

Automatic keyboard repeat rate configuration for new keyboards
C++
18
star
13

sftscrollbugfixer

Fix the Age of Empires II (TC, HD, DE) scroll bug with a DLL injection
C++
13
star
14

cyberbot

Chatbot for the Matrix Protocol, supporting encryption and plugins.
Python
13
star
15

emacs-elaiza

Chat interface and library for interacting with different LLMs via Emacs.
Emacs Lisp
11
star
16

ceph-mount

Pure-Python CephFS mount helper
Python
7
star
17

openage-pr

openage website and public relations content
CSS
7
star
18

gentoo-overlay

sft overlay - Gentoo package overlay for SFT projects and more 🐧
Shell
6
star
19

splash

gtk3 python speedreading program
Python
6
star
20

sftbackup

simple periodic backup tool based on borgbackup and snapper
Python
6
star
21

abrechnung-legacy-2a

payment and debt management tool for semi-enterprise-grade resource planing. superseeded by https://github.com/SFTtech/abrechnung
JavaScript
5
star
22

aiomatrix

Matrix client API for Python asyncio
Python
4
star
23

starlit-emacs

Deep blue and colorful emacs theme like a clear night sky 🌃
Emacs Lisp
4
star
24

openage-data-3dmodels

3d models for openage assets
4
star
25

openage-modding

openage content creation guidelines
Python
4
star
26

cooputils

When working in a shell collaboratively using tmux, this collection of scripts can be used to automatically switch to a 'coop' user and choose a TMUX session.
Python
4
star
27

openage-debian

Debian packaging files for openage
3
star
28

openage-blog

Development blog for openage
CSS
3
star
29

sftmake

simple make system in python
Python
3
star
30

sftkit

Software Development Kit for SFT projects
TypeScript
2
star
31

sftbot

State of the art artificial intelligence to perform various cutting-edge cloud-based enterprise tasks.
2
star
32

openage-webdoc

openage online documentation
HTML
2
star
33

sftutils

shell utilities to complement coreutils, moreutils and beyond
Python
2
star
34

factorioplanner

Web interface for planning factories in factorio
1
star
35

kerbmath

mathematic helper software for kerbal space program
Python
1
star
36

dirtreeflattener

Useful when organizing huge directory structures. Unpacks archives and removes unnecessary subdirectory layers.
Python
1
star
37

kicad-lib

Common KiCAD lib for SFT hardware projects
Python
1
star
38

nyan-vscode

Visual Studio Code extension for creating nyan code
1
star
39

flow3rtron

Tron for the CCC Flow3r
Python
1
star
40

openage-kevin

kevin environment for building openage
1
star
41

kevin-win-setup

Tools to automatically download and prepare a free Windows VM for kevin.
Makefile
1
star