• Stars
    star
    110
  • Rank 314,860 (Top 7 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created about 9 years ago
  • Updated 10 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
250
star
3

nyan

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

sticker

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

abrechnung

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

openage-data

Free (as in freedom) media files for openage.
56
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

stiefelsystem

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

wirespider

Wireguard Mesh VPN - automatic tunnel and authorization management 🕸
Rust
31
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++
17
star
13

sftscrollbugfixer

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

ceph-mount

Pure-Python CephFS mount helper
Python
7
star
15

openage-pr

openage website and public relations content
CSS
7
star
16

emacs-elaiza

Chat interface and library for interacting with different LLMs via Emacs.
Emacs Lisp
7
star
17

gentoo-overlay

sftoverlay - Gentoo package overlay for SFT projects and more 🐧
Shell
6
star
18

splash

gtk3 python speedreading program
Python
6
star
19

sftbackup

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

abrechnung-legacy-2a

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

aiomatrix

Matrix client API for Python asyncio
Python
4
star
22

starlit-emacs

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

openage-data-3dmodels

3d models for openage assets
4
star
24

openage-modding

openage content creation guidelines
Python
4
star
25

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
26

openage-debian

Debian packaging files for openage
3
star
27

openage-blog

Development blog for openage
CSS
3
star
28

sftmake

simple make system in python
Python
3
star
29

sftkit

Software Development Kit for SFT projects
TypeScript
2
star
30

sftbot

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

openage-webdoc

openage online documentation
HTML
2
star
32

sftutils

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

cyberbot

modular matrix chatbot with encryption support
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