summaryrefslogtreecommitdiff
path: root/doc/010-intro.yarn
blob: f900b550a0875cfef992fdf931bd96227d1f338c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Introduction

Ick is a continuous integration tool written for its author. It might
be useful for others, and if so, good. Ick's purpose in life is to
allow its author to run builds and build-time tests, and cleanly build
Debian packages, in a number of environments. The environments are
different releases of Debian, running on different hardware
architectures. A constraint on Ick is that its author only has a
laptop, no server, and doesn't want Ick to start running things at
unexpected times.

Ick in summary:

* a command line line tool, invoked by its user at opportune moments
* reads a YAML file that specifies the target environments and the
  projects to build
* supports only git as a version control system
* connects to targets with ssh only
* runs one build at a time to avoid overloading the author's laptop
* aims to be simple and small to avoid being a maintenance burden

Ick does not:

* manage environments
  * configuration management and orchestration tools should be used
    with ick
* have a web interface
* provide an HTTP API
* run as a daemon in any way
* have a lot of configurability
* try to replace popular CI tools

Ick was written because its author had to suffer his Jenkins
installation breaking one time too many, and not finding anything else
that was trying to be as simple as his needs are.

All the things Ick is not, Ick can become, but not if the author has
to make that happen. If you want to use Ick and you need Ick to add
features to do so, you will need to write the code yourself.