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       tito.release.CentosGitReleaser
87           Releaser which will checkout your fork in the project in the Centos
88           Stream git using centpkg. A new branch off your fork is then
89           created for the changes. This is produced in the same way as the
90           FedoraGitReleaser with a .tar file that is loaded to the lookaside.
91           The branch gets pushed to the forked repo and tito is done. The
92           process then requires the manual creation of a merge request
93           against the main repo of the release which is done in the web UI.
94
95           The required_bz_flags property can be specified to have tito check
96           Red Hat Bugzilla to see if each bug number extracted from the
97           changelog has appropriate flags. If it does not, it will be skipped
98           in the commit message. If no bugs are found with the required tags,
99           a placeholder_bz can be specified (see below), otherwise the
100           release will abort.
101
102           The placeholder_bz property can be specified to use if no bugs were
103           found in the changelog with the required flags.
104
105               [centos-git]
106               releaser = tito.release.CentosGitReleaser
107               branches = c9s
108               required_bz_flags = release+
109               placeholder_bz = 100000
110
111           If you would like to build (ie - koji) against a different target
112           than what is default for the FedoraGit/DistGit branch currently
113           being worked on it can be done like the following example.
114
115               Note
116               The formatting of build_targets in the following example is
117               git_branch:koji_build_target and the following custom build
118               targets are just place holders for the example and aren’t
119               likely to exist in Fedora’s koji
120
121               [fedora-git-custom-target]
122               releaser = tito.release.FedoraGitReleaser
123               branches = master el6 f19
124               build_targets = master:custom-target el6:el6-custom-target f19:f19-custom-target
125
126       tito.release.DistGitReleaser
127           Same as FedoraGitReleaser, but use rhpkg instead of fedpkg.
128
129       tito.release.KojiReleaser
130           Releaser which create src.rpm and submit them into Koji. Can submit
131           more than one build at once.
132
133               Note
134               This is targeted for private instances of Koji. You can not
135               submit regular build into Fedora Koji using this releaser,
136               because Fedora Koji do not allow builds from src.rpm - for
137               building into Fedora see FedoraGitReleaser above.
138
139               [koji]
140               releaser = tito.release.KojiReleaser
141               autobuild_tags = my-koji-tag-rhel6 my-koji-tag-fedora18
142
143           In this example, releaser will create src.rpm according the
144           definition of [my-koji-tag-rhel6] in tito.props. You usually want
145           to set up there at least disttag. See KOJI section in
146           tito.props(5).
147
148           If --scratch option or SCRATCH environment variable is set, package
149           is build as scratch in Koji.
150
151           You can specify KOJI_OPTIONS in titorc(5) and it is passed to koji
152           command as option. Usually you want to specify at least --config
153           option.
154
155           Variable autobuild_tags is required for KojiReleaser.
156
157       tito.release.KojiGitReleaser
158           Build into Koji through dist-git. It behaves as KojiReleaser. Only
159           difference is that src.rpm is not passed to Koji. Instead is sent
160           to koji git hash from which Koji should build package.
161
162           Note: This feature is not in upstream Koji (although is submited
163           for long time).
164
165           Please do not confuse with FedoraGitReleaser. KojiGitReleaser is
166           intended for private instances of Koji.
167
168           You need to specify git_url, which specify url of git repository.
169           This url needs to be reachable from Koji.
170
171       tito.release.ObsReleaser
172           Build into Open Build Service using osc command.
173
174           You must specify "project_name" in config. You can optionaly
175           specify "package_name", but if it is not present name of package
176           directory is used.
177
178           This releaser assume that you have ~/.oscrc correctly configured.
179
180       tito.release.CoprReleaser
181           This releaser submits your src.rpm to Copr.
182
183               [my-copr]
184               releaser = tito.release.CoprReleaser
185               project_name = my-copr-project-name
186               upload_command = scp %(srpm)s my.web.com:public_html/my_srpm/
187               remote_location = http://my.web.com/~msuchy/my_srpm/
188               copr_options = --timeout 600
189
190       Variables are:
191
192       •   project_name - this is name of your project on Copr
193
194       •   upload_command - this command is executed to upload src.rpm to
195           internet. It can be scp, rsync or just cp. It may containt string
196           "%(srpm)s" (even several times), which is substitued by real srpm
197           path. (optional)
198
199       •   remote_location - how can be accessed the location above over www.
200           (optional)
201
202       •   copr_options - space separated options to pass directly to copr-cli
203           build. Defaults to --nowait. (optional)
204
205       The releaser will publish your src.rpm to remote server and then submit
206       it into Copr via URL. If you rather want to submit the package directly
207       from your computer, just omit "upload_command" and "remote_location"
208       variables.
209
210       Project_name behave exactly as "autobuild_tags" in KojiReleaser, and
211       you can define various options for each project name in tito.props
212       (e.g. disttag, whitelist, blacklist, scl). For more information see man
213       page of tito.props.
214
215       Note: this releaser assume you have copr-cli correctly configured. See
216       API KEY section in copr-cli man page.
217

EXAMPLE

219           ; Release into fedora-15-x86_64 yum repo
220           [yum-f15-x86_64]
221           releaser = tito.release.YumRepoReleaser
222           srpm_disttag = .fc15
223           builder = tito.builder.MockBuilder
224           builder.mock = fedora-15-x86_64
225           rsync = fedorapeople.org:/srv/repos/dgoodwin/tito/fedora-15/x86_64/ fedorapeople.org:/srv/repos/dgoodwin/tito/fedora-15/x86_64/
226
227           ; Release into el6 yum repository. specify builder.test=1 so that
228           ; we build on latest commit (instead of latest tito tag)
229           [yum-el6-x86_64]
230           releaser = tito.release.YumRepoReleaser
231           srpm_disttag = .el6
232           builder = tito.builder.MockBuilder
233           builder.mock = epel-6-x86_64
234           builder.test = 1
235           scl = ruby193
236           rsync = remoteserver.org:/srv/repos/el6/testing/x86_64
237
238           ; Upload into source repository
239           [yum-fc15-sources]
240           releaser = tito.release.YumRepoReleaser
241           srpm_disttag = .fc15
242           builder = tito.builder.MockBuilder
243           builder.mock = fedora-15-x86_64
244           filetypes = srpm
245           rsync = remoteserver.org:/srv/repos/fedora-15/SRPMS
246
247           ; el5 yum repository. Overloading createrepo_command to make
248           ; el5 compatible repo.
249           [yum-el5-i386]
250           releaser = tito.release.YumRepoReleaser
251           srpm_disttag = .el5
252           builder = tito.builder.MockBuilder
253           builder.mock = epel-5-i386
254           createrepo_command = createrepo_c -s sha1
255           rsync = remoteserver.org:/srv/repos/rhel5/i386
256
257           ; rsync tgz file to remote site with custom rsync arguments
258           [rsync]
259           releaser = tito.release.RsyncReleaser
260           srpm_disttag = .fc15
261           builder = tito.builder.MockBuilder
262           builder.mock = fedora-15-x86_64
263           filetypes = tgz
264           rsync = remoteserver.org:/srv/tarballs/
265           rsync_args = -rlvzpt
266
267           ; Release using OBS
268           [obs-project]
269           releaser=tito.release.ObsReleaser
270           project_name=home:xsuchy
271
272           ; Upload src.rpm to remote server and then submit it into Copr via URL
273           [copr-project]
274           releaser = tito.release.CoprReleaser
275           project_name = my-copr-project-name another-project
276           upload_command = cp %(srpm)s /home/msuchy/public_html/my_srpm/
277           remote_location = http://my.web.com/~msuchy/my_srpm/
278
279           ; Submit src.rpm from your computer directly to Copr
280           [copr-project]
281           releaser = tito.release.CoprReleaser
282           project_name = my-copr-project-name another-project
283
284           ; Submit src.rpm from your computer directly to Copr, timeout after 10 minutes
285           [copr-project]
286           releaser = tito.release.CoprReleaser
287           project_name = my-copr-project-name another-project
288           copr_options = --timeout 600
289
290
291
292tito                              07/22/2023                 RELEASERS.CONF(5)
Impressum