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