summaryrefslogtreecommitdiff
path: root/doc/030-setup.yarn
blob: f767726d7b6a2ea6b41b53d4e2d862a3ae41548a (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Setup

Ick has a number of command line options. Run `ick --help` to see them
all. See the [**cliapp**(5)](http://liw.fi/cliapp/cliapp.5.txt) manual
page for information about using configuration files.

An "ick file" specifies the target environments to use, the projects
to build, and the location where to store state between runs. It is in
YAML and looks like this:

    EXAMPLE
    state: /home/liw/ick/state
    targets:
        sid_amd64:
            address: ick@debian-sid-amd64
            pbuilder-ci-tgz: /var/cache/pbuilder/ci.tgz
        wheezy_i386:
            address: ick@debian-wheezy-i386
            pbuilder-ci-tgz: /var/cache/pbuilder/ci.tgz
    projects:
        obnam:
            git: /home/liw/obnam/obnam
            branch: master
            pipelines:
            - shell
            - debian-ci
            - debian-release
            commands:
            - ./check -yu

Ick will retrieve the source for each project, from the given git
repository and branch, copy it to each target, and run the specified
commands.

You need to set up each target environment yourself. This includes
making sure Ick can access it over ssh, and that all the necessary
tools are installed on the target, as well as all the
build-dependencies of each projects. Ick does not do this for you:
there are many system administration tools for configuration
management to take care of this problem, or you can do it manually.
(FIXME: Some day, when the author has mastered ansible or something
like it, add a link to a git repo with the Ick related configuration
for the configuration management tool.)

Ick requires the following to be installed on the target:

* a Unix-like operating system (probably Debian)
* an ssh server
* rsync
* Python 2.6 or 2.7
* python-cliapp (see <http://liw.fi/cliapp>)

For building Debian packages, the target must be Debian and have the
following installed:

* pbuilder

Things will fail otherwise.