2011-10-16 13:31:57 -03:00
releasers.conf(5)
=================
include::man.asciidoc[]
NAME
----
2014-03-07 14:18:43 -04:00
releasers.conf - Config file defining release targets where builds can be
2013-06-19 11:30:53 -05:00
published.
2011-10-16 13:31:57 -03:00
SYNOPSIS
--------
None
2013-04-24 22:57:10 +02:00
// older asciidoc versions (such as the version for .el5) require a synopsis section
2011-10-16 13:31:57 -03:00
DESCRIPTION
-----------
2014-03-07 14:18:43 -04:00
Tito allows projects to define their own release targets, which can specify
the exact releaser implementation to use (potentially a custom one), and any
2013-06-19 11:30:53 -05:00
arguments it may need for a specific type of build.
2011-10-16 13:31:57 -03:00
RELEASERS
---------
2014-03-07 14:18:43 -04:00
Tito includes several releaser implementations that can be used in
releasers.conf. Additionally you may define a lib_dir in your tito.props
globalconfig section, and place your own custom implementation of a releaser
2013-06-19 11:30:53 -05:00
there.
2011-10-16 13:31:57 -03:00
2014-03-07 14:18:43 -04:00
Specify "builder.test = 1" in your releasers.conf target to enable --test
builds. (uses the latest git HEAD rather than the latest tagged package) This
can be useful for automating the publishing of a nightly build, which you
2013-06-19 11:30:53 -05:00
would not want to continually have to tag.
2012-03-14 13:09:40 -03:00
2011-10-16 13:31:57 -03:00
tito.release.YumRepoReleaser::
2013-06-19 11:30:53 -05:00
Releaser which will build your packages, rsync down an existing yum repository,
2014-03-07 14:18:43 -04:00
place your packages in it, regenerate the yum repodata, and rsync the yum
2013-06-19 11:30:53 -05:00
repository back up.
2013-04-24 22:57:10 +02:00
+
2014-12-23 10:10:05 -04:00
Requires the "srpm_disttag = .fc21" to specify the disttag on the resulting
source RPM. This allows for a correct srpm to upload, and prevents problems
with it getting clobbered when building for "newer" disttags.
+
2014-03-07 14:18:43 -04:00
Specify "filetypes = srpm" if you want to build a source rpm instead of a
2013-06-19 11:30:53 -05:00
regular rpm.
2013-04-24 22:57:10 +02:00
+
2014-03-07 14:18:43 -04:00
Specify "createrepo_command = createrepo -s sha1" if you are building on a
2013-06-19 11:30:53 -05:00
recent distro and are working with yum repositories for rhel5.
2013-04-24 22:57:10 +02:00
+
2013-04-24 12:38:31 +02:00
You can use environment variable RSYNC_USERNAME to override rsync username.
2012-07-16 23:01:38 +00:00
tito.release.RsyncReleaser::
2013-04-24 12:38:31 +02:00
Releaser which will build your packages, and rsync up to a remote repository.
2013-04-24 22:57:10 +02:00
+
2014-03-07 14:18:43 -04:00
Specify "filetypes = rpm srpm tgz" to choose what type of packages will be
2013-06-19 11:30:53 -05:00
uploaded.
2013-04-24 22:57:10 +02:00
+
2013-04-24 12:38:31 +02:00
You can use environment variable RSYNC_USERNAME to override rsync username.
2013-04-24 22:57:10 +02:00
+
2014-05-04 17:54:38 +01:00
Specify "scl = COLLECTION" to build into Software Collection. Deprecated,
prefer "builder.scl = COLLECTION" instead.
2013-04-24 22:57:10 +02:00
+
2014-03-07 14:18:43 -04:00
Variable "rsync_args" can specify addiontal argument passed to rsync. Default
2013-06-19 11:30:53 -05:00
is "-rlvz".
2012-07-16 23:01:38 +00:00
2011-10-16 13:31:57 -03:00
tito.release.FedoraGitReleaser::
2014-03-07 14:18:43 -04:00
Releaser which will checkout your project in Fedora git using fedpkg. Sources
are then synced to the first branch your releaser lists. After this tito will
git merge the first branch into all other listed branches, triggering builds
2013-06-19 11:30:53 -05:00
in each.
2013-04-24 22:57:10 +02:00
+
2014-06-23 14:46:42 -03:00
The 'required_bz_flags' property can be specified to have tito check Red Hat Bugzilla to see if each bug number extracted from the changelog has appropriate flags. If it does not, it will be skipped in the commit message. If no bugs are found with the required tags, a 'placeholder_bz' can be specified (see below), otherwise the release will abort.
+
The 'placeholder_bz' property can be specified to use if no bugs were found in the changelog with the required flags.
2013-04-24 22:57:10 +02:00
+
2011-10-16 13:31:57 -03:00
[fedora-git]
releaser = tito.release.FedoraGitReleaser
branches = master el5 el6 f14 f15 f16
2014-06-23 14:46:42 -03:00
required_bz_flags = myos-1.1.0+ pm_ack+
placeholder_bz = 100000
2013-06-19 11:30:53 -05:00
+
2014-03-07 14:18:43 -04:00
If you would like to build (ie - koji) against a different target than what is
2013-06-19 11:30:53 -05:00
default for the FedoraGit/DistGit branch currently being worked on it can be
done like the following example.
+
2014-03-07 14:18:43 -04:00
NOTE: The formatting of build_targets in the following example is
git_branch:koji_build_target and the following custom build targets are just
2013-06-19 11:30:53 -05:00
place holders for the example and aren't likely to exist in Fedora's koji
+
[fedora-git-custom-target]
releaser = tito.release.FedoraGitReleaser
branches = master el6 f19
build_targets = master:custom-target el6:el6-custom-target f19:f19-custom-target
+
2011-10-16 13:31:57 -03:00
2013-04-24 22:57:10 +02:00
tito.release.DistGitReleaser::
Same as FedoraGitReleaser, but use rhpkg instead of fedpkg.
2011-10-16 13:31:57 -03:00
tito.release.KojiReleaser::
2016-04-23 13:29:38 +02:00
Releaser which create src.rpm and submit them into Koji. Can submit more than
2013-06-19 11:30:53 -05:00
one build at once.
2013-04-24 22:03:18 +02:00
+
2014-03-07 14:18:43 -04:00
NOTE: This is targeted for private instances of Koji. You can not submit
regular build into Fedora Koji using this releaser, because Fedora Koji do not
allow builds from src.rpm - for building into Fedora see FedoraGitReleaser
2013-06-19 11:30:53 -05:00
above.
2013-04-24 22:03:18 +02:00
+
[koji]
releaser = tito.release.KojiReleaser
autobuild_tags = my-koji-tag-rhel6 my-koji-tag-fedora18
+
2014-03-07 14:18:43 -04:00
In this example, releaser will create src.rpm according the definition of
[my-koji-tag-rhel6] in tito.props. You usually want to set up there at least
2013-06-19 11:30:53 -05:00
disttag. See KOJI section in tito.props(5).
2013-04-24 22:03:18 +02:00
+
2014-03-07 14:18:43 -04:00
If --scratch option or SCRATCH environment variable is set, package is build
2013-06-19 11:30:53 -05:00
as scratch in Koji.
2013-04-24 22:03:18 +02:00
+
2014-03-07 14:18:43 -04:00
You can specify KOJI_OPTIONS in titorc(5) and it is passed to koji command as
2013-06-19 11:30:53 -05:00
option. Usually you want to specify at least --config option.
2013-04-24 22:03:18 +02:00
+
Variable autobuild_tags is required for KojiReleaser.
2011-10-16 13:31:57 -03:00
2013-04-24 22:57:10 +02:00
tito.release.KojiGitReleaser::
2014-03-07 14:18:43 -04:00
Build into Koji through dist-git. It behaves as KojiReleaser. Only difference
is that src.rpm is not passed to Koji. Instead is sent to koji git hash from
2013-06-19 11:30:53 -05:00
which Koji should build package.
2013-04-24 22:57:10 +02:00
+
Note: This feature is not in upstream Koji (although is submited for long time).
+
2014-03-07 14:18:43 -04:00
Please do not confuse with FedoraGitReleaser. KojiGitReleaser is intended for
2013-06-19 11:30:53 -05:00
private instances of Koji.
2013-04-24 22:57:10 +02:00
+
2014-03-07 14:18:43 -04:00
You need to specify git_url, which specify url of git repository. This url
2013-06-19 11:30:53 -05:00
needs to be reachable from Koji.
2011-10-16 13:31:57 -03:00
2013-07-18 09:30:20 +02:00
tito.release.ObsReleaser::
Build into Open Build Service using osc command.
+
You must specify "project_name" in config. You can optionaly specify "package_name",
but if it is not present name of package directory is used.
+
This releaser assume that you have ~/.oscrc correctly configured.
2013-11-01 14:01:54 +01:00
tito.release.CoprReleaser::
2015-09-11 09:39:45 +02:00
This releaser submits your src.rpm to Copr.
2013-11-01 14:01:54 +01:00
[my-copr]
releaser = tito.release.CoprReleaser
project_name = my-copr-project-name
upload_command = scp %(srpm)s my.web.com:public_html/my_srpm/
remote_location = http://my.web.com/~msuchy/my_srpm/
2015-11-11 15:25:35 -05:00
copr_options = --timeout 600
2013-11-01 14:01:54 +01:00
Variables are:
* project_name - this is name of your project on Copr
2015-09-11 09:39:45 +02:00
* upload_command - this command is executed to upload src.rpm to internet. It can be scp, rsync or just cp. It may containt string "%(srpm)s" (even several times), which is substitued by real srpm path. (optional)
* remote_location - how can be accessed the location above over www. (optional)
2015-11-11 15:25:35 -05:00
* copr_options - space separated options to pass directly to `copr-cli build`. Defaults to --nowait. (optional)
2015-09-11 09:39:45 +02:00
The releaser will publish your src.rpm to remote server and then submit it into Copr via URL. If you rather want to submit the package directly from your computer, just omit "upload_command" and "remote_location" variables.
2013-11-01 14:01:54 +01:00
Project_name behave exactly as "autobuild_tags" in KojiReleaser, and you can define various options for each project name in tito.props (e.g. disttag, whitelist, blacklist, scl). For more information see man page of tito.props.
Note: this releaser assume you have copr-cli correctly configured. See API KEY section in copr-cli man page.
2011-10-16 13:31:57 -03:00
EXAMPLE
-------
2014-03-07 14:18:43 -04:00
; Release into fedora-15-x86_64 yum repo
2011-10-16 13:31:57 -03:00
[yum-f15-x86_64]
releaser = tito.release.YumRepoReleaser
2014-12-23 10:10:05 -04:00
srpm_disttag = .fc15
2011-10-16 13:31:57 -03:00
builder = tito.builder.MockBuilder
builder.mock = fedora-15-x86_64
2011-11-25 16:31:37 -04:00
rsync = fedorapeople.org:/srv/repos/dgoodwin/tito/fedora-15/x86_64/ fedorapeople.org:/srv/repos/dgoodwin/tito/fedora-15/x86_64/
2011-10-16 13:31:57 -03:00
2012-07-16 23:01:38 +00:00
; Release into el6 yum repository. specify builder.test=1 so that
; we build on latest commit (instead of latest tito tag)
2011-10-16 13:31:57 -03:00
[yum-el6-x86_64]
releaser = tito.release.YumRepoReleaser
2014-12-23 10:10:05 -04:00
srpm_disttag = .el6
2011-10-16 13:31:57 -03:00
builder = tito.builder.MockBuilder
builder.mock = epel-6-x86_64
2012-03-14 13:09:40 -03:00
builder.test = 1
2013-04-24 12:41:13 +02:00
scl = ruby193
2012-07-16 23:01:38 +00:00
rsync = remoteserver.org:/srv/repos/el6/testing/x86_64
; Upload into source repository
[yum-fc15-sources]
releaser = tito.release.YumRepoReleaser
2014-12-23 10:10:05 -04:00
srpm_disttag = .fc15
2012-07-16 23:01:38 +00:00
builder = tito.builder.MockBuilder
builder.mock = fedora-15-x86_64
filetypes = srpm
rsync = remoteserver.org:/srv/repos/fedora-15/SRPMS
; el5 yum repository. Overloading createrepo_command to make
; el5 compatible repo.
[yum-el5-i386]
releaser = tito.release.YumRepoReleaser
2014-12-23 10:10:05 -04:00
srpm_disttag = .el5
2012-07-16 23:01:38 +00:00
builder = tito.builder.MockBuilder
builder.mock = epel-5-i386
createrepo_command = createrepo -s sha1
rsync = remoteserver.org:/srv/repos/rhel5/i386
2011-10-16 13:31:57 -03:00
2013-04-18 13:25:28 -07:00
; rsync tgz file to remote site with custom rsync arguments
2012-07-16 23:01:38 +00:00
[rsync]
releaser = tito.release.RsyncReleaser
2014-12-23 10:10:05 -04:00
srpm_disttag = .fc15
2012-07-16 23:01:38 +00:00
builder = tito.builder.MockBuilder
builder.mock = fedora-15-x86_64
filetypes = tgz
rsync = remoteserver.org:/srv/tarballs/
2013-04-18 13:25:28 -07:00
rsync_args = -rlvzpt
2013-07-18 09:30:20 +02:00
; Release using OBS
[obs-project]
releaser=tito.release.ObsReleaser
project_name=home:xsuchy
2013-11-01 14:01:54 +01:00
2015-09-11 09:39:45 +02:00
; Upload src.rpm to remote server and then submit it into Copr via URL
2013-11-01 14:01:54 +01:00
[copr-project]
releaser = tito.release.CoprReleaser
project_name = my-copr-project-name another-project
upload_command = cp %(srpm)s /home/msuchy/public_html/my_srpm/
remote_location = http://my.web.com/~msuchy/my_srpm/
2015-09-11 09:39:45 +02:00
; Submit src.rpm from your computer directly to Copr
[copr-project]
releaser = tito.release.CoprReleaser
project_name = my-copr-project-name another-project
2015-11-11 15:25:35 -05:00
; Submit src.rpm from your computer directly to Copr, timeout after 10 minutes
[copr-project]
releaser = tito.release.CoprReleaser
project_name = my-copr-project-name another-project
copr_options = --timeout 600