Falcon Repository Manager

Repository automation

For automating things, you need a daemon that runs and reacts to events. Falcon is not a daemon but uses various other daemons (sshd, rsyncd, apache) to do its work. For automating Falcon it uses yet again another deamon: crond ofcourse!

Basic automation: installing uploaded pacakages

If you build and upload everything manually to your repository, you can simply create a cronjob that install them into your repository, something like this should work:
# Install all completely built packages
0,15,30,45 * * * * falcon scan -c
0 * * * * falcon export
# If you have mirrors, use this instead
#0 * * * * falcon export && falcon sync

Build daemon automation

In the build documentation you saw how Falcon can easy the package building process. Cron can help you make it even easier by updating your build chroots, queueing the builds and doing housekeeping. This crontab is active on my builddaemons where the build user can run the pbuilder wrappers via sudo without password.
PATH=/bin:/usr/bin:/sbin:/usr/sbin
SHELL=/bin/bash

# Update the pbuilders at one in the morning
0   1 * * * /srv/pbuilder/feisty-build.sh update && /srv/pbuilder/gutsy-build.sh update

# Build packages every 5 minutes. Falcon locks itself so no 2 processes will
# run at the same time.
*/5 * * * * /home/dennis/falcon-build-local-queue

# Use tmpreaper to get rid of old files (older than 2 days). Run it a few 
# times per day. Make sure you install tmpreaper!
13 */6 * * * /usr/sbin/tmpreaper --mtime --mtime-dir 2d /srv/pbuilder/incoming /srv/pbuilder/result

Full automation

This will soon be possible, there is some functionality still missing in Falcon
Generated by Falcon 2.0.5 ©2005-2008 Dennis Kaarsemaker