1RELEASERS.CONF(5) Tito User Manual RELEASERS.CONF(5)
2
3
4
6 releasers.conf - Config file defining release targets where builds can
7 be published.
8
10 None
11
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
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
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)