summaryrefslogtreecommitdiff
path: root/tickets/df3c06a33121403aaf655e18065611a9/Maildir/new/1529506863.M856205P4737Q1.koom
blob: 5c8ec8d85611b665a0864fef84448f27eec21673 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
Return-Path: <ick-discuss-bounces@ick.liw.fi>
X-Original-To: distix@pieni.net
Delivered-To: distix@pieni.net
Received: from yaffle.pepperfish.net (yaffle.pepperfish.net [88.99.213.221])
	by pieni.net (Postfix) with ESMTPS id 5581642858
	for <distix@pieni.net>; Wed, 20 Jun 2018 15:00:47 +0000 (UTC)
Received: from platypus.pepperfish.net (unknown [10.112.101.20])
	by yaffle.pepperfish.net (Postfix) with ESMTP id 300A1414F0
	for <distix@pieni.net>; Wed, 20 Jun 2018 16:00:47 +0100 (BST)
Received: from ip6-localhost.nat ([::1] helo=platypus.pepperfish.net)
	by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian))
	id 1fVebH-000800-50; Wed, 20 Jun 2018 16:00:47 +0100
Received: from koom.pieni.net ([88.99.190.206] helo=pieni.net)
 by platypus.pepperfish.net with esmtpsa (Exim 4.80 #2 (Debian))
 id 1fVebF-0007zj-SN
 for <ick-discuss@ick.liw.fi>; Wed, 20 Jun 2018 16:00:45 +0100
Received: from exolobe1.liw.fi (unknown [194.111.46.68])
 by pieni.net (Postfix) with ESMTPSA id 65958427F2
 for <ick-discuss@ick.liw.fi>; Wed, 20 Jun 2018 15:00:45 +0000 (UTC)
Received: from exolobe1.liw.fi (localhost [127.0.0.1])
 by exolobe1.liw.fi (Postfix) with ESMTPS id 82EFA620219
 for <ick-discuss@ick.liw.fi>; Wed, 20 Jun 2018 18:00:44 +0300 (EEST)
Date: Wed, 20 Jun 2018 18:00:43 +0300
From: Lars Wirzenius <liw@liw.fi>
To: ick-discuss@ick.liw.fi
Message-ID: <20180620150043.GA31229@exolobe1.liw.fi>
References: <aa1c2a3004b3c67ad6bfa17911146e996e9159ba.camel@liw.fi>
 <20180620134544.5wzm5rfff2oxqp5n@somnambulist.local>
MIME-Version: 1.0
In-Reply-To: <20180620134544.5wzm5rfff2oxqp5n@somnambulist.local>
User-Agent: Mutt/1.10.0 (2018-05-17)
X-Pepperfish-Transaction: ed36-d654-2bce-7a22
X-Pepperfish-Transaction-By: platypus
Subject: Re: Ick and checking out source from git
X-BeenThere: ick-discuss@ick.liw.fi
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: discussions about the ick CI system <ick-discuss-ick.liw.fi>
List-Unsubscribe: <https://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/ick-discuss-ick.liw.fi>,
 <mailto:ick-discuss-request@ick.liw.fi?subject=unsubscribe>
List-Archive: <http://listmaster.pepperfish.net/pipermail/ick-discuss-ick.liw.fi>
List-Post: <mailto:ick-discuss@ick.liw.fi>
List-Help: <mailto:ick-discuss-request@ick.liw.fi?subject=help>
List-Subscribe: <https://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/ick-discuss-ick.liw.fi>,
 <mailto:ick-discuss-request@ick.liw.fi?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6061248057344379119=="
Mime-version: 1.0
Sender: ick-discuss-bounces@ick.liw.fi
Errors-To: ick-discuss-bounces@ick.liw.fi


--===============6061248057344379119==
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="Kj7319i9nmIyA2yE"
Content-Disposition: inline


--Kj7319i9nmIyA2yE
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Jun 20, 2018 at 02:45:44PM +0100, Daniel Silverstone wrote:
> On Wed, Jun 20, 2018 at 15:30:49 +0300, Lars Wirzenius wrote:
> > I'd like to support this for any number of repositories. I suggest the
> > following:
> >=20
> >     parameters:
> >         git:
> >         - url: ssh://git@git.example.com/foo.git
> >           ref: master
> >           dir: foo
> >         - url: ssh://git@git.example.com/foo-debian.git
> >           ref: master
> >           dir: foo/debian
> >=20
> > The above would do the same things as the two git clones above.
> >=20
> > What do you all think? Especially you, Daniel? Would that be an accepta=
ble
> > design (at least for now)?
>=20
> So my main concern with this is that it remains a problem for the case of
> genericisation.  I currently have a single pipeline step which uses a par=
ameter
> to configure the git repository to pull from.
>=20
> What I'd like would be something akin to Ansible's use of jinja2 to do:
>=20
> parameters:
>   git:
>   - url: "ssh://git@server/{{ source_name }}.git"
>     ref: master
>     dir: "{{ source_name }}"
>   - url: "ssh://git@server/{{ source_name }}/debian.git"
>     ref: master
>     dir: "{{ source_name }}/debian"
>=20
> Failing that kind of capability, your suggestion would at least mean I co=
uld move
> the clones out of the shell steps I suppose :-)

Hm. Supporting something like jinja2 in the controller is something
that may become necessary later on, but it's a complication that I'd
like to avoid until it is necessary to have it. Even if that means
more verbose .ick file. I guess it'd be possible to only support it
icktool, but I'll have to think about this.

Is your example really saving much typing? Since parameters are per
project, the following stanza would need to be repeated for each
project:

> parameters:
>   git:
>   - url: "ssh://git@server/{{ source_name }}.git"
>     ref: master
>     dir: "{{ source_name }}"
>   - url: "ssh://git@server/{{ source_name }}/debian.git"
>     ref: master
>     dir: "{{ source_name }}/debian"

I recognize that the .ick files get rather verbose as they are
currently defined. For the immediate future, I prefer that over a more
complicated controller. Later on, as we (as the ick project) gain more
experience of what the pain points are, we can make the .ick language
more powerful.

Maybe we can make the .ick language more powerful with better
defaults? Perhaps by having a "default parameters for all projects"
section? Also, sets of pipelines for different styles of projects?

    defaults:
        git_defaults:
            url_base: ssh://git@git.example.com/
            ref: master
            dir: src
    default_pipelines:
        kinnison_style:
        - get_source_from_git
        - build_lua_project
        - build_deb


    projects:

    - project: foo
      style: kinnison_style
      parameters:
          git:
           - repo: foo.git
           - repo: foo-debian.git
             dir: src/debian

    - project: bar
      style: kinnison_style
      parameters:
          git:
           - url: ssh://git@other.git.example.com/bar.git
           - repo: bar-debian.git
             dir: src/debian

This would build two projects, foo and bar. The git action would look
at the git_defaults parameter, and append the repo to url_base, unless
the full url was given. Thus the above would be equivalent of:

    projects:

    - project: foo
      parameters:
          git:
          - url: ssh://git@git.example.com/foo.git
            ref: master
            dir: src
          - url: ssh://git@git.example.com/foo-debian.git
            ref: master
            dir: src/debian
      pipelines:
          - get_source_from_git
          - build_kinnison_project
          - build_deb

    - project: bar
      parameters:
          git:
          - url: ssh://git@other.git.example.com/bar.git
            ref: master
            dir: src
          - url: ssh://git@git.example.com/bar-debian.git
            ref: master
            dir: src/debian
      pipelines:
          - get_source_from_git
          - build_kinnison_project
          - build_deb
             =20
No templating complexity, but rather less repetition. It's not as
generic a solution, of course. What do you think?

--=20
I want to build worthwhile things that might last. --joeyh

--Kj7319i9nmIyA2yE
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEETNTnrewG6wEE1EJ3bC+mFux6IDEFAlsqbBoACgkQbC+mFux6
IDGZyw//VjjIncseEXFkqZt/FiuuTVMF77Uq+3btSpKVCD12poRfyzxvf+t4SmYN
gQodZt7ngM/tGuFvx4izN4GbImyXcCPn2S26MxGCjQIfiR1jQJxKV9Vl5s7ut/ra
i7kWHTc9LYhsF6TkqwV0NLU9zejKTPoyhdRwFwhR4c8s4ilrHkAyGVeU5pSbEI9a
j0/DOmp7Qt5+s2WrtvHgm3W4u/ubTCNaZ3qEWdryXH+dxGnl+aAAtpP3jTOgw5hL
yN9UPkDv5+z36dP3l72MFpPzD7gI5VmWMZkmbogIpVIbgxJUprLRiWJjYjeKt7A0
K9q+nL3TS12PEJdFrWN1vqdMytZQgQlkHKxlnazLk4wrsGo7PdVXAtLJNwVEY3hV
chc9mkL5egkQ5FBS6hMgGMuJNt45/8eXqrcbkA0MwOmpxBEyhIY3RhIqjjD8Kc/Y
k+vQa+lQybw+C/0cT0lkp9wXY09ewNSpml0SZw19IZipO3YWi9ydKfJC4O+Q4O5Z
mpjx08wDN/ChyQjjWkDy+DtnGPWrmsZBDZUM7nwbbheYD7vtsva1WFaDvzp4kodG
3egARC/eUo4+riJqMNX6GZYuE+1v+UNDjWxZxxA7eNJrvaoU1vOSkL/UrQC0nZZO
jLCGgLW1/YeIpdaeEgJ1i3rYkVz16GTnGdT8o4YMP6roL6qh8tY=
=sqnF
-----END PGP SIGNATURE-----

--Kj7319i9nmIyA2yE--


--===============6061248057344379119==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
ick-discuss mailing list
ick-discuss@ick.liw.fi
https://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/ick-discuss-ick.liw.fi

--===============6061248057344379119==--