#
# Test-AutoBuild main configuration file.
#
# Short documentation can be found inline, and for further
# information consult the manual page 'man 5 auto-build.conf'
#
# Path to the build engine definition. This determines the
# sequence of stages executed by the build engine, package
# types to publish, and other miscellaneous aspects of the
# build engine's runtime environment.
# It will typically suffice to leave this on the default
# setting
engine = /etc/auto-build.d/engine/host-build.conf
# If you want to use SELinux MAC, then uncomment this
# and run with '/usr/bin/auto-build-secure' instead
#engine = /etc/auto-build.d/engine/host-build-secure.conf
# The location of the directory containing the template files
# for the HTML status pages, and email alert messages
templateDir = /etc/auto-build.d/templates
# The directory under which the build engine will run. This
# should match whatever path was provided when running the
# 'auto-build-make-root' script. /var/lib/builder is the default
# directory created by the RPM perl-Test-AutoBuild-account
buildRoot = /var/lib/builder
# A name for the build instance. This is used in the HTML
# status pages, email alert subject, and RSS feeds
label = Continous Automatic Builder
# Name and email address of the build administrator
adminEmail = admin@example.com
adminName = Build Administrator
# Name and email address of the development team writing the
# software being built. Typically point it to the main developer
# mailing list
groupEmail = dev@example.com
groupName = Build Developers
# If the build host has multiple names, then specify which
# one is used for the virtual host publishing the HTML status
# pages. This will be used to construct links in the RSS feed
# and email alert messages. If not set, defaults to the primary
# hostname of the machine
#hostname = example.com
# The prefix under which the HTML status pages are located.
# If using /etc/auto-build.d/httpd/aliased.conf, then
#httpPrefix = /builder
# Else with /etc/auto-build.d/httpd/user.conf, then
#httpPrefix = /~builder
# Finally with /etc/auto-build.d/httpd/vhost.conf, then
httpPrefix =
# If the HTML status pages are to be published on a host
# that is different from the local host, then set the
# earlier 'hostname' to refer to the remote host. Then
# specify an rsync URI for publishing to that host
#rsyncURI = rsync://some.other.host:/var/www/html
# Where to save a log of the build engine progress (this
# data is also sent to STDERR, but when run from cron this
# typically ends up in /dev/null)
engineLogFile = /var/lib/builder/autobuild.log
# The method used for acquiring a lock file to prevent multiple
# build instances running at the same time against the same
# buildRoot directory.
# * fcntl - Best option, but only implemented for Linux, SunOS
# and FreeBSD
# * flock - Portable to any UNIX, but does not completely protect
# if buildRoot is on an NFS volume
# * file - Simple file creation/deletion test. If the build engine
# or host machine crashes, it will be neccessary to manually
# delete the lock file ($buildRoot/.build.mutex)
lockMethod = fcntl
# Define what high level features you want enabled
features = {
# If the cache is enabled, then modules will only be built if their
# sources have changed since the previous build cycle. This provides
# much faster cycle times if there are many modules in the build
# config, only a few of which ever change
cache = 1
# Whether to try and checkout the latest sources from version control
# If checkout is disabled, the build will run with whatever sources
# were checked out on the previous cycle.
checkout = 1
# Whether to run the 'createrepo' tool against the RPMs on the HTTP
# distribution site
createrepo_index = 1
# Whether to generate an APT index of RPMs / Debian packages on the
# HTTP distribution site
apt_index = 0
# Whether to send email alerts at the end of cycles
email_alerts = 1
}
# Describe 'interesting' metadata about the build platform
platform = {
# Taken from /etc/issue, if not set
#label = RHEL-4, Update 2
# Taken from uname(2) 'sysname' if not set
#operating_system = GNU/Linux
# Taken from uname(2) 'machine' if not set
# architecture = i386
# Arbitrary administrator specific options...
#options = {
# compiler.cc = GCC 4.0.2
# linker = GNU ld 2.15.94.0.2.2
#}
}
# Criteria for sending email alerts
alert = {
# If the scope is set to
# * builder - one email is sent with info on all modules
# * module - one email is sent for each module
scope = builder
# Conditions for sending alerts
# * always - send regardless of status
# * fail - send whenever the status is 'failed'
# * first-fail - send on the first failure only
trigger = first-fail
# If scope is set to 'builder' then
#
# * admin - use the global address defined for $adminEmail
# * group - use the global address defined for $groupEmail
#
# If scope is set to 'module' then
#
# * admin - use the module specific address defined for $adminEmail
# * group - use the module specific address defined for $groupEmail
#
# Or just set an explicit email address (separate multiple address with ,)
to = group
# What to set the 'From' address to
#from = builder@example.com
# The SMTP server to relay the mail via, defaults to localhost
#smtpServer = mail.example.com
}
# Set the maximum disk space allowed for use by the cache
maxCacheSize = 100M
# Set the maximum number of days to keep a cache around before
# considering it expired
maxCacheAge = 7d
# Module groups (for web status)
groups = {
software = {
label = Software
}
autobuild = {
label = Test-AutoBuild
}
# docs = {
# label = Documentation
# }
}
# Global environment variables which will be set whenever
# any command is run by the build engine
env = {
USER = builder
}
# Define the source control repositories from which modules
# will be checked out. There are 7 supported repository types
# at this time. Depending on the 'type' parameter, various
# 'env' or 'option' parameters may be required
#
# cvs - CVS. Specify the CVSROOT environment variable, and
# optionally a CVS_RSH variable
#
# env = {
# CVSROOT = :pserver:anonymous@cvs.gna.org:/cvs/testautobuild
# }
#
# p4 - Perforce. Specify the P4CONFIG environment variable
# for a client view. The viewspec will be filled in
# automatically
#
# env = {
# P4CONFIG = /var/lib/builder/.p4config
# }
#
# tla - GNU Arch. Specify the 'archive-name' and 'archive-uri'
# options for the remote repository. eg,
#
# options = {
# archive-name = lord@emf.net--2004
# archive-uri = http://arch.quackerhead.com/~lord/archives/lord@emf.net--2004
# }
#
# hg - Mercurial. Specify the 'base-url' option to refer to
# the base URL under which the repositories are located
#
# options = {
# base-url = http://www.selenic.com/
# }
#
# git - Git. Specify the 'base-url' option to refer to
# the base URL under which the repositories are located
#
# options = {
# base-url = git://anongit.freedesktop.org/git/
# }
#
# darcs - Darcs. Specify the 'base-url' option to refer to
# the base URL under which the repositories are located
#
# options = {
# base-url = http://www.darcs.net/repos/
# }
#
# bzr - Bazaar. Specify the 'base-url' option to refer to
# the base URL under which the repositories are located
#
# options = {
# base-url = http://www.darcs.net/repos/
# }
#
# mtn - Monotone. Specify the 'server' option to refer to
# the hostname under which the repository is located
#
# options = {
# server = guitone.thomaskeller.biz
# }
#
# Or the path to the dir containing local DBs
#
# options = {
# path = /path/to/repo/dir/
# }
#
# svn - Subversion. Specify the 'url' option to refer to the base
# URL for the repository
#
# options = {
# url = http://aplaws.redhat.com/svn/aplaws/
# }
#
# svk - SVK. No special options. The modules contain the full URL
#
# disk - Local disk. Specify the 'directory' otion to refer to the
# base directory containing the files
#
# options = {
# directory = /var/lib/builder/local-files
# }
#
repositories = {
gna-cvs = {
label = GNA Anonymous CVS Server
type = cvs
env = {
CVSROOT = :pserver:anonymous@cvs.gna.org:/cvs/testautobuild
}
}
}
# Now, the list of modules to checkout from the repositories
# defined above.
modules = {
autobuild-dev = {
# This is used in email alerts, HTML status pages & RSS feeds
# to refer to the module
label = Test AutoBuild Unstable
# if 'enabled' is 0, then the module will be ignored. Use
# this to temporarily hide a module without removing it
# from the config file
#enabled = 1
# If 'useArchive' is enabled, then the build of the module
# will be skipped if no changes were made in SCM. Change to
# 0 to force the module to build on every cycle
#useArchive = 1
# If different from global settings. These will be used if
# the email alert scope is set to 'module'
#
#adminEmail = autobuild-admin@example.com
#adminName = Module Administrator
#groupEmail = autobuild-dev@example.com
#groupName = Module Developers
# The source code to check out
source = {
# Name of the repository defined above
repository = gna-cvs
# The path within the repository to be checked out
path = testautobuild
}
# Any module specific environment variables to be set when
# executing the module control file
env = {
HTMLURLPREFIX = /~builder/artifacts/autobuild-dev/apidocs
}
# List of groups (defined earlier) which this module is a
# member of
groups = (
autobuild
software
)
# Arbitrary list of hyperlinks to associate with this module
# in the HTML status pages. Typically link to the module
# developer web pages & source code browser
links = (
{
href = http://www.autobuild.org/
label = Homepage
}
{
href = http://cvs.gna.org/viewcvs/testautobuild/testautobuild/
label = Browse CVS Repository
}
)
# List of artifacts generated during build which should be
# published on the HTML pages. For example, code cover reports
# API documentation. The 'src' parameter is relative to the
# module's root source code directory. The 'dst' parameter is
# the URL prefix under which to save the artifact. The optional
# 'path' parameter is needed if there is no index file in the
# directory copied.
artifacts = (
{
src = README
dst = README
label = Readme
}
{
src = blib/coverage/*
dst = coverage/
label = Code Test & POD coverage Reports
}
{
src = blib/html/*
dst = apidocs/
path = apidocs/Test/AutoBuild.html
label = Module API documentation
}
)
}
}
# Optionally, the packages (RPMs, etc) generated during the
# build can be built into an ISO image for distribution
isos = {
autobuild-unstable = {
# File name for the ISO image
name = autobuild-unstable.iso
# Label to use in link for HTML status pages
label = Test-AutoBuild Unstable
# The package types to include in the ISO, can be
# one or more of 'rpm', 'zip', 'debian'
packageTypes = (
rpm
zip
)
# List of modules whose packages should be included
# in the ISO
modules = (
autobuild-dev
)
}
}
# That's all folks!