summaryrefslogtreecommitdiff
path: root/index.mdwn
blob: ccac319927912b154031f86b437820491343345f (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[[!meta title="continuous integration should be fun"]]

[[!img ick-logo.svg size=300x300 class=float_right]]

**Ick is currently retired and does not get any development.**


Ick is a **continuous Integration** system. It is currently **in
development** and ALPHA quality. Some features may work and anything may
change in a future release.

If you're looking for something to use for real, ick is probably not
ready for you yet. If you'd like ick to grow into something takes care
of all your CI worries, **please join and help** make that happen.

[[About]] —
[[Project]] —
[[Download]] —
[[Documentation|docs]] —
[[Contact]] —
[[License]] —
[[News]]

Latest news from the project:

<div class="newslist">
[[!inline pages="page(blog/*) and tagged(news)" 
  limit=5 template=titlepage archive=yes trail=no feeds=no]]
</div>


# Example .ick file

An .ick file defines projects and pipelines for ick. Here's an
example:

    projects:

      # Define project to build a container "system tree": basically
      # the "chroot" for the container.

      - project: stretch_systree
        pipelines:
          - build_debian_systree
        parameters:
          debian_codename: stretch
          packages:
            - build-essential
            - git
            - jq
          artifact_name: stretch_systree

      # Define a project to say "hello, world" inside a container.x

      - project: hello
        pipelines:
          - prepare_container
          - hello
        parameters:
          systree_name: stretch_systree

    pipelines:

      # Define a pipeline of actions to build a system tree. Note
      # that this is reuseable for different systrees, by the project
      # giving it different parameters.

      - pipeline: build_debian_systree
        parameters:
          - debian_codename
          - packages
          - artifact_name
        actions:
          - debootstrap: auto
            mirror: http://deb.debian.org/debian
            where: host

          - shell: |
              apt-get install -y python3
            where: chroot

          - python: |
              import os, subprocess
              def runcmd(argv, **kwargs):
                subprocess.check_call(argv, **kwargs)
              runcmd(['apt-get', 'install', '-y'] + params['packages'])
            where: chroot

          - archive: workspace
            where: host

      # Prepare container for building: get systree from artifact store.

      - pipeline: prepare_container
        actions:
          - action: populate_systree
            where: host

      # Execute "echo hello, world" inside the container for a project.

      - pipeline: hello
        actions:
          - shell: |
              echo hello, world
              pwd
            where: container