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 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
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 07/27/2019 RELEASERS.CONF(5)