Continuous Automated Build and Integration Environment. Cabie is a multi-platform, multi-cm client/server based application providing both command line and web-based access to real time build monitoring and execution information.

Mission

The mission for CABIE is to centralize projects within a large company built by different development groups, utilizing unlike toolsets, languages and cm tools. The centralization happens by deploying CABIE within each group, CABIE handling all build jobs, and centralizing all data collection in a single location using a database backend.

Features

Project Status

CABIE does not yet have an installer, and the README has not been completed. Although it does work there still may be some additional web files missing. If anyone is interested in deploying it in it's current state please drop me email and I will guide you through the setup and configuration.

Related resources

Current supported command set

adduser:
	adduser -p port -u username -f first -l last [-m mail ] [-g group]
	Add new user to CM server

authorize:
	authorize -c computername
	authorize computername to control builds

authorized:
	authorized
	display list of computers authorized to control builds

build:
	build -n jobname [-j jobno]


buildlog:
	buildlog -n jobname -t retail|debug
	retrieve buildlog of defined job

changed:
	changed -n jobname -j jobno [-e endjobno]
	Display list of files updated for job jobno

clone:
	clone -n oldjobname -c newjobname
	Create new job by copying oldjob configuration

commands:
	commands -l -w 
	Display supported command set

connectlog:
	connectlog [-l limit]
	display client connection log [limit to limit number of recs]

createjob:
	createjob -n jobname 
	          -p (p4 port/cvs root)
	          -c (p4 client/cvs module)
	          -r sourceroot
	          -t debug|retail|both
	          -d toolsdir
	          -k keeplevel
	          -s sccs
	          -b browserlink
	          -m global failure notification
	          -C "comment"
	          [-D] dump existing job in cmd line format

cvsperms:
	cvsperms   "users"
	Update module userlist

debuglog:
	debuglog -n jobname
	complete debug log of defined job

deluser:
	deluser -p port -u username [-f first -l last -g group]
	Remove user from CM server

describe:
	describe -n job
	describe charastics of defined job

disable:
	disable -n job
	Disable build job

dumpconfig:
	dumpconfig
	Display buildserver configuration loaded from buildconf.pm

elapsed:
	elapsed -n job
	Display elapsed time for current build job

enable:
	enable -n job [-f -k]
	Enable build job 
	[-f force semaphore removal]
	[-k kill running build process] (requires -f)

errorlog:
	errorlog -n jobname -t retail|debug 
	retrieve errorlog of defined job

free:
	free -n jobname -j jobno
	Release locks allowing jobno for build jobname to be deleted
	by the buildserver

genweb:
	genweb -n joblist -l limit
	Generate web view of buildserver status for jobs in joblist 
	Display up to last limit jobs

getid:
	getid
	Display buildserver process ID

help:
	help [command]
	Display [command] usage

incomplete:
	incomplete -n jobname [-l limit] 
	Will display (optionally limit) build numbers of failed builds 
	for jobname

instructions:
	instructions -n jobname
	instructions for building a defined job locally

joblog:
	joblog -n jobname
	complete run log of defined job

jobstate:
	jobstate
	Display buildserver job status

keep:
	keep -n jobname -j jobno [-c comment]
	Keep jobname for build jobno from being automatically deleted

kill:
	kill -p pid -s signal
	kill process by PID (see ps) on the server

lastchange:
	lastchange -n jobname [-l n]
	display last [n] updates for jobname.

laststart:
	laststart [-l n]
	display last [n] buildserver starts

nextjob:
	nextjob -n jobname
	display updates CM system will make for jobname with next sync

notify:
	notify -n jobname -f firstjob -l lastjob -c comment
	Send email with comment to all submitters of jobname
	from firstjob to lastjob

promote:
	promote -n jobname -j jobno -c "comment"
	Promote jobname jobno for formal testing

ps:
	ps options
	Build Unix style process table on the server

recover:
	recover -n jobname
	Recover active jobs accidently removed by enable command

rejectlog:
	rejectlog [-l limit] 
	display client rejection log [limit to limit number of recs]

removed:
	removed
	display jobs no longer under the buildserver's control

removejob:
	removejob -n jobname [-f]
	Remove defined job from the buildserver [-f permanent deletion]

restorejob:
	restorejob -n jobname
	Add previously defined job back to the buildserver

runstats:
	runstats -n job [-l number -a -r]

	Display statistics for [optionally -l] last build jobs
	-a displays only the average build time
	-r displays raw time in ticks (seconds) useful
	for feeding into a script

servers:
	servers
	display other build servers

shutdown:
	shutdown
	shutdown buildserver processes

status:
	status -n job 
	Check build status

subscribe:
	subscribe -n jobname -e emailaddress
	subscribe for automatic email notification of defined job

subscribers:
	subscribers -n jobname
	display email subscription list for a defined job

synclog:
	synclog -n jobname
	retrieve synclog of defined job

sysinfo:
	sysinfo
	display hardware/software configuration for server

unauthorize:
	unauthorize -c machinename
	remove computername from authorization list

unsubscribe:
	unsubscribe -n jobname -e emailaddress
	unsubscribe from automatic email notification of defined job

whatsnew:
	whatsnew
	display latest changes made to the build server