Automatically updating websites from SVN



[re-sending apologies for possible dupe]

Ross Golder made a new script for auto-updating websites from SVN. I've
enhanced it a little. Below describes partly how the script works,
status of converting websites to build from SVN, etc.

How the setup works:
1. The website module requires a post-commit hook that triggers a
timestamp to be updated
 - This is done using procmail and $HOME/bin/set_buildflag.py under
   gnomecvs (on window)
 - See /svn/gnomeweb-wml/hooks/post-commit on socket
2. From cron, the following runs every 15 minutes:
   $HOME/bin/update_sites.py -c $HOME/etc/website-triggers
  - $HOME/etc/website-triggers contains the known SVN modules
  - $HOME/bin/update_sites.py is the script that does all the work
3. $HOME/etc/website-triggers
  - a .ini-style textfile containing information about the SVN modules
  - things like URL, where the module will be checked out to, who to
    mail when there are errors, etc
4. $HOME/bin/update_sites.py
  - Uses the python24 module installed on window (instead of the
    standard 2.2)
  - Uses the website-triggers file to determine where to checkout a
    module to (or update it)
  - Assumes new modules can be checked out using the URL:
    http://svm.gnome.org/svn/$MODULE/trunk
  - Run the hook script $HOME/hooks/$MODULE (if it exists)
  - If the hook script fails somehow (non-zero exitcode), the owner
    will be informed via email (usually gnome-web-list gnome org)
5. Hook scripts
  - These start with as working directory the checkout directory of the
    module


Quick howto add another website:
1. Change the modules's post-commit hook (see gnomeweb-wml post-commit
hook)
2. Fill in $HOME/etc/website-triggers
3. Add a hook script if needed as $HOME/hooks/$MODULE
4. Setup apache config


Thoughts

I do not want one module touching any other module. Currently some
modules install things in www.gnome.org and developer.gnome.org. I'd
rather make them install the stuff in /usr/local/www/$MODULE and use
aliases for www.gnome.org and developer.gnome.org.

Hook scripts *currently* know the location of the website directory
(e.g. /usr/local/www/gnomeweb-wml). I'd rather define this in
$HOME/etc/website-triggers and make it available as a environment
variable. This to have all the configuration in one place. I'm planning
to do this later.

There is a lot of cruft in the current setup. Things that aren't hosted
anymore. Hook scripts that depend on files that aren't available in the
module, etc. I plan to clean this up later.

Python 2.2 annoyed me too much. I've installed the python24 rpm and
using that now ($HOME/bin/update_sites.py has #!/usr/bin/python24).


Websites that should build:
http://www.gnome.org/
http://developer.gnome.org/
http://www.gnome.org/gnome-office/ (gw-web module)
http://2005.guadec.org/ (and 2004, 2003)
http://www.gnomefr.org/
http://www.gnomebr.org/
http://foundation.gnome.org/
http://art.gnome.org/
http://glade.gnome.org/
http://www.gnome.org/projects/memprof/ (memprof module)
http://www.pygtk.org/

There could be modules I've missed.

Cruft:
wallpaper-web module: wallpaper.gnome.org doesn't exist
gnome-user-docs: relies on non-existing files + tries to change
www.gnome.org directly
gnome-devel-docs: relies on non-existing files + tries to change
www.gnome.org + developer.gnome.org directly



-- 
Regards,
Olav



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]