tito/releasers.conf.5.asciidoc

142 lines
5.9 KiB
Text
Raw Normal View History

2011-10-16 13:31:57 -03:00
releasers.conf(5)
=================
include::man.asciidoc[]
NAME
----
releasers.conf - Config file defining release targets where builds can be published.
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
-----------
Tito allows projects to define their own release targets, which can specify the exact releaser implementation to use (potentially a custom one), and any arguments it may need for a specific type of build.
RELEASERS
---------
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 there.
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 would not want to continually have to tag.
2011-10-16 13:31:57 -03:00
tito.release.YumRepoReleaser::
Releaser which will build your packages, rsync down an existing yum repository, place your packages in it, regenerate the yum repodata, and rsync the yum repository back up.
2013-04-24 22:57:10 +02:00
+
Specify "filetypes = srpm" if you want to build a source rpm instead of a regular rpm.
2013-04-24 22:57:10 +02:00
+
Specify "createrepo_command = createrepo -s sha1" if you are building on a 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.
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
+
2013-04-24 12:38:31 +02:00
Specify "filetypes = rpm srpm tgz" to choose what type of packages will be 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
+
2013-04-24 12:41:13 +02:00
Specify "scl = COLLECTION" to build into Software Collection.
2013-04-24 22:57:10 +02:00
+
Variable "rsync_args" can specify addiontal argument passed to rsync. Default is "-rlvz".
2011-10-16 13:31:57 -03:00
tito.release.FedoraGitReleaser::
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 in each.
2013-04-24 22:57:10 +02:00
+
2011-10-16 13:31:57 -03:00
WARNING: Highly experimental, very prone to failure if merging master into your branches is likely to cause a conflict. You will need to cleanup manually if this occurs.
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
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.CvsReleaser::
Releaser which will submit builds through CVS build systems. (no longer useful for Fedora) The CVS module is checked out, sources, spec file, and patches are synced and committed, the release is tagged (make tag), and then submitted to the build system. (make build)
2013-04-24 22:57:10 +02:00
+
2011-10-16 13:31:57 -03:00
[cvs]
releaser = tito.release.CvsReleaser
cvsroot = :ext:myuser@cvs.fedoraproject.org:/cvs/extra
branches = BRANCH1 BRANCH2
tito.release.KojiReleaser::
Releaser which create src.rpm and submit them into Koji. Can submit more then one build at once.
+
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 above.
+
[koji]
releaser = tito.release.KojiReleaser
autobuild_tags = my-koji-tag-rhel6 my-koji-tag-fedora18
+
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 disttag. See KOJI section in tito.props(5).
+
If --scratch option or SCRATCH environment variable is set, package is build as scratch in Koji.
+
You can specify KOJI_OPTIONS in titorc(5) and it is passed to koji command as option. Usually you want to specify at least --config option.
+
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::
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 which Koji should build package.
+
Note: This feature is not in upstream Koji (although is submited for long time).
+
Please do not confuse with FedoraGitReleaser. KojiGitReleaser is intended for private instances of Koji.
+
You need to specify git_url, which specify url of git repository. This url needs to be reachable from Koji.
2011-10-16 13:31:57 -03:00
EXAMPLE
-------
; Release into fedora-15-x86_64 yum repo
2011-10-16 13:31:57 -03:00
[yum-f15-x86_64]
releaser = tito.release.YumRepoReleaser
builder = tito.builder.MockBuilder
builder.mock = fedora-15-x86_64
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
; 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
builder = tito.builder.MockBuilder
builder.mock = epel-6-x86_64
builder.test = 1
2013-04-24 12:41:13 +02:00
scl = ruby193
rsync = remoteserver.org:/srv/repos/el6/testing/x86_64
; Upload into source repository
[yum-fc15-sources]
releaser = tito.release.YumRepoReleaser
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
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
[cvs]
cvsroot = :gserver:cvs.example.com:/cvs/dist
branches = FEDORA-15
; rsync tgz file to remote site with custom rsync arguments
[rsync]
releaser = tito.release.RsyncReleaser
builder = tito.builder.MockBuilder
builder.mock = fedora-15-x86_64
filetypes = tgz
rsync = remoteserver.org:/srv/tarballs/
rsync_args = -rlvzpt