1RELEASERS.CONF(5)              Tito User Manual              RELEASERS.CONF(5)
2
3
4

NAME

6       releasers.conf - Config file defining release targets where builds can
7       be published.
8

SYNOPSIS

10       None
11

DESCRIPTION

13       Tito allows projects to define their own release targets, which can
14       specify the exact releaser implementation to use (potentially a custom
15       one), and any arguments it may need for a specific type of build.
16

RELEASERS

18       Tito includes several releaser implementations that can be used in
19       releasers.conf. Additionally you may define a lib_dir in your
20       tito.props globalconfig section, and place your own custom
21       implementation of a releaser there.
22
23       Specify "builder.test = 1" in your releasers.conf target to enable
24       --test builds. (uses the latest git HEAD rather than the latest tagged
25       package) This can be useful for automating the publishing of a nightly
26       build, which you would not want to continually have to tag.
27
28       tito.release.YumRepoReleaser
29           Releaser which will build your packages, rsync down an existing yum
30           repository, place your packages in it, regenerate the yum repodata,
31           and rsync the yum repository back up.
32
33           Requires the "srpm_disttag = .fc21" to specify the disttag on the
34           resulting source RPM. This allows for a correct srpm to upload, and
35           prevents problems with it getting clobbered when building for
36           "newer" disttags.
37
38           Specify "filetypes = srpm" if you want to build a source rpm
39           instead of a regular rpm.
40
41           Specify "createrepo_command = createrepo_c -s sha1" if you are
42           building on a recent distro and are working with yum repositories
43           for rhel5.
44
45           You can use environment variable RSYNC_USERNAME to override rsync
46           username.
47
48       tito.release.RsyncReleaser
49           Releaser which will build your packages, and rsync up to a remote
50           repository.
51
52           Specify "filetypes = rpm srpm tgz" to choose what type of packages
53           will be uploaded.
54
55           You can use environment variable RSYNC_USERNAME to override rsync
56           username.
57
58           Specify "scl = COLLECTION" to build into Software Collection.
59           Deprecated, prefer "builder.scl = COLLECTION" instead.
60
61           Variable "rsync_args" can specify addiontal argument passed to
62           rsync. Default is "-rlvz".
63
64       tito.release.FedoraGitReleaser
65           Releaser which will checkout your project in Fedora git using
66           fedpkg. Sources are then synced to the first branch your releaser
67           lists. After this tito will git merge the first branch into all
68           other listed branches, triggering builds in each.
69
70           The required_bz_flags property can be specified to have tito check
71           Red Hat Bugzilla to see if each bug number extracted from the
72           changelog has appropriate flags. If it does not, it will be skipped
73           in the commit message. If no bugs are found with the required tags,
74           a placeholder_bz can be specified (see below), otherwise the
75           release will abort.
76
77           The placeholder_bz property can be specified to use if no bugs were
78           found in the changelog with the required flags.
79
80               [fedora-git]
81               releaser = tito.release.FedoraGitReleaser
82               branches = master el5 el6 f14 f15 f16
83               required_bz_flags = myos-1.1.0+ pm_ack+
84               placeholder_bz = 100000
85
86           If you would like to build (ie - koji) against a different target
87           than what is default for the FedoraGit/DistGit branch currently
88           being worked on it can be done like the following example.
89
90               Note
91               The formatting of build_targets in the following example is
92               git_branch:koji_build_target and the following custom build
93               targets are just place holders for the example and aren’t
94               likely to exist in Fedora’s koji
95
96               [fedora-git-custom-target]
97               releaser = tito.release.FedoraGitReleaser
98               branches = master el6 f19
99               build_targets = master:custom-target el6:el6-custom-target f19:f19-custom-target
100
101       tito.release.DistGitReleaser
102           Same as FedoraGitReleaser, but use rhpkg instead of fedpkg.
103
104       tito.release.KojiReleaser
105           Releaser which create src.rpm and submit them into Koji. Can submit
106           more than one build at once.
107
108               Note
109               This is targeted for private instances of Koji. You can not
110               submit regular build into Fedora Koji using this releaser,
111               because Fedora Koji do not allow builds from src.rpm - for
112               building into Fedora see FedoraGitReleaser above.
113
114               [koji]
115               releaser = tito.release.KojiReleaser
116               autobuild_tags = my-koji-tag-rhel6 my-koji-tag-fedora18
117
118           In this example, releaser will create src.rpm according the
119           definition of [my-koji-tag-rhel6] in tito.props. You usually want
120           to set up there at least disttag. See KOJI section in
121           tito.props(5).
122
123           If --scratch option or SCRATCH environment variable is set, package
124           is build as scratch in Koji.
125
126           You can specify KOJI_OPTIONS in titorc(5) and it is passed to koji
127           command as option. Usually you want to specify at least --config
128           option.
129
130           Variable autobuild_tags is required for KojiReleaser.
131
132       tito.release.KojiGitReleaser
133           Build into Koji through dist-git. It behaves as KojiReleaser. Only
134           difference is that src.rpm is not passed to Koji. Instead is sent
135           to koji git hash from which Koji should build package.
136
137           Note: This feature is not in upstream Koji (although is submited
138           for long time).
139
140           Please do not confuse with FedoraGitReleaser. KojiGitReleaser is
141           intended for private instances of Koji.
142
143           You need to specify git_url, which specify url of git repository.
144           This url needs to be reachable from Koji.
145
146       tito.release.ObsReleaser
147           Build into Open Build Service using osc command.
148
149           You must specify "project_name" in config. You can optionaly
150           specify "package_name", but if it is not present name of package
151           directory is used.
152
153           This releaser assume that you have ~/.oscrc correctly configured.
154
155       tito.release.CoprReleaser
156           This releaser submits your src.rpm to Copr.
157
158               [my-copr]
159               releaser = tito.release.CoprReleaser
160               project_name = my-copr-project-name
161               upload_command = scp %(srpm)s my.web.com:public_html/my_srpm/
162               remote_location = http://my.web.com/~msuchy/my_srpm/
163               copr_options = --timeout 600
164
165       Variables are:
166
167       ·   project_name - this is name of your project on Copr
168
169       ·   upload_command - this command is executed to upload src.rpm to
170           internet. It can be scp, rsync or just cp. It may containt string
171           "%(srpm)s" (even several times), which is substitued by real srpm
172           path. (optional)
173
174       ·   remote_location - how can be accessed the location above over www.
175           (optional)
176
177       ·   copr_options - space separated options to pass directly to copr-cli
178           build. Defaults to --nowait. (optional)
179
180       The releaser will publish your src.rpm to remote server and then submit
181       it into Copr via URL. If you rather want to submit the package directly
182       from your computer, just omit "upload_command" and "remote_location"
183       variables.
184
185       Project_name behave exactly as "autobuild_tags" in KojiReleaser, and
186       you can define various options for each project name in tito.props
187       (e.g. disttag, whitelist, blacklist, scl). For more information see man
188       page of tito.props.
189
190       Note: this releaser assume you have copr-cli correctly configured. See
191       API KEY section in copr-cli man page.
192

EXAMPLE

194           ; Release into fedora-15-x86_64 yum repo
195           [yum-f15-x86_64]
196           releaser = tito.release.YumRepoReleaser
197           srpm_disttag = .fc15
198           builder = tito.builder.MockBuilder
199           builder.mock = fedora-15-x86_64
200           rsync = fedorapeople.org:/srv/repos/dgoodwin/tito/fedora-15/x86_64/ fedorapeople.org:/srv/repos/dgoodwin/tito/fedora-15/x86_64/
201
202           ; Release into el6 yum repository. specify builder.test=1 so that
203           ; we build on latest commit (instead of latest tito tag)
204           [yum-el6-x86_64]
205           releaser = tito.release.YumRepoReleaser
206           srpm_disttag = .el6
207           builder = tito.builder.MockBuilder
208           builder.mock = epel-6-x86_64
209           builder.test = 1
210           scl = ruby193
211           rsync = remoteserver.org:/srv/repos/el6/testing/x86_64
212
213           ; Upload into source repository
214           [yum-fc15-sources]
215           releaser = tito.release.YumRepoReleaser
216           srpm_disttag = .fc15
217           builder = tito.builder.MockBuilder
218           builder.mock = fedora-15-x86_64
219           filetypes = srpm
220           rsync = remoteserver.org:/srv/repos/fedora-15/SRPMS
221
222           ; el5 yum repository. Overloading createrepo_command to make
223           ; el5 compatible repo.
224           [yum-el5-i386]
225           releaser = tito.release.YumRepoReleaser
226           srpm_disttag = .el5
227           builder = tito.builder.MockBuilder
228           builder.mock = epel-5-i386
229           createrepo_command = createrepo_c -s sha1
230           rsync = remoteserver.org:/srv/repos/rhel5/i386
231
232           ; rsync tgz file to remote site with custom rsync arguments
233           [rsync]
234           releaser = tito.release.RsyncReleaser
235           srpm_disttag = .fc15
236           builder = tito.builder.MockBuilder
237           builder.mock = fedora-15-x86_64
238           filetypes = tgz
239           rsync = remoteserver.org:/srv/tarballs/
240           rsync_args = -rlvzpt
241
242           ; Release using OBS
243           [obs-project]
244           releaser=tito.release.ObsReleaser
245           project_name=home:xsuchy
246
247           ; Upload src.rpm to remote server and then submit it into Copr via URL
248           [copr-project]
249           releaser = tito.release.CoprReleaser
250           project_name = my-copr-project-name another-project
251           upload_command = cp %(srpm)s /home/msuchy/public_html/my_srpm/
252           remote_location = http://my.web.com/~msuchy/my_srpm/
253
254           ; Submit src.rpm from your computer directly to Copr
255           [copr-project]
256           releaser = tito.release.CoprReleaser
257           project_name = my-copr-project-name another-project
258
259           ; Submit src.rpm from your computer directly to Copr, timeout after 10 minutes
260           [copr-project]
261           releaser = tito.release.CoprReleaser
262           project_name = my-copr-project-name another-project
263           copr_options = --timeout 600
264
265
266
267tito                              02/03/2019                 RELEASERS.CONF(5)
Impressum