sackci

command module
v0.0.0-...-9a8ef1a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2018 License: GPL-3.0 Imports: 20 Imported by: 0

README

sackci

Simple as *uck continuous integration server

Screenshot of webinterface

Features

  • agent-less design (just a docker host is needed)
  • pipeline configuration stored in project repository
  • configuration in text format
  • custom scm via special docker container
  • realtime web interface
  • REST interface
  • single binary, which contains all necessary data

Getting started

The version contained in the master branch is packaged in a docker image and published on docker hub. A valid config file must be mounted to the container by the user.

docker run --name sackci -t -i \
           -p 443:443 \
           -p 80:80 \
           -v /var/lib/sackci:/sackci \
           -v /var/run/docker.sock:/var/run/docker.sock \
           sackci/server

Architecture

The sackci server is the central component which orchestrates the builds on all "agents". On the build agents there is no software required, except a running docker daemon with exposed management api to the network. The server periodically polls for changes changes in the source repository of each project. If new changes are detected the build process is executed on one of the configured docker hosts. All build stages are executed in seperate containers, so there is no need to install all the tools on the host machine. Just pick the right docker image for your build stage.

SCM Integration

It is possible to integrate any kind of SCM into sackci. Therefore a special docker container is needed. The sackci server communicates with the scm container via command line arguments and return values. We provide an scm integration container for the following scm systems:

Required Tools

To build the webfrontend some tools are required to process less files, minify the content and embed all assets into the application. All files are stored in assets/fs.go, which should be up to date at any time. In order to generate a new fs.go file a simple go generate assets/fs_util.go should be enough.

TODO

  • secret variables in Pipelinefile
  • graphing of code metrics
  • hot reload of configuration
  • project inheritance

Notice

This project is far from beeing finished and should not be used in production. Feel free to contribute.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL