wiki:PakistanDeploymentCycle

Version 65 (modified by Fran Boon, 11 years ago) ( diff )

--

Pakistan Deployment Cycle

Process

We do daily upgrades of the systems from a single Fabric script:

  1. Upgrade Live with code release from UAT
  2. Refresh the UAT database with data from Live
  3. Upgrade UAT to Trunk code
  4. Send a notification to the List with a summary of the changes on both Test & Live

Instructions

Login to eden.sahanafoundation.org

1st time:

cd /home/release
fab generate_keys
fab test distribute_keys
fab prod distribute_keys

Subsequently:

cd /home/release
fab prod deploy
fab test deploy

Make a note of any upgrade issues with the migration on Test so that they can be streamlined in tomorrow's migration on Live

Sysadmin ToDo

1. Upgrade Live with code release from UAT

  • Extend maintenance_on() / maintenance_off()
    • Support Cron
  • Extend the cleanup()
    • Deal with .moved files
    • Only apply customisations to files which had conflicts
  • Do optimise()
    • Add indexes

2. Refresh the UAT database with data from Live

  • Include 'uploads' folder
  • Need to add generic role accounts in a script after the DB replaced

3. Upgrade UAT to Trunk code

  • as per (1)

4. Send a notification to the List with a summary of the changes on both Test & Live

Notifications can be built with info from the Trac Timeline

General

  • Set deployment_settings on UAT to the same as Prod
  • Add rollback() by reading VERSION before bzr pull, so then can bzr revert -r $version
  • Add update() for debian packages: SSH into each & apt-get update; apt-get upgrade
  • Enhance Apache Maintenance site
    • allowing access to site through a browser - but using a different name (which we don't publish)
      /etc/apache2/sites-available/maintenance
      
    • improving the text on the maintenance page: /var/www/maintenance.html
  • dev.pakistan.sahanafoundation.org instance needs adding to the Fabfile
    • This shouldn't be fully-automated into the upgrades cycle, but does have a script to refresh data from live manually
    • dev. will be postgres!

Live

  • Get MapProxy working (basic install on 'geo' done)

Demo

  • Update Demo (whilst keeping the logins there intact - all other data can be dropped)

Trac

  • Upgrade to 0.12.1
    • Check Plugin Dependencies
  • Convert from sqlite to PostgreSQL (or MySQL) to improve performance
  • Add Timing & Estmation Plugin
  • Investigate a fix or alternative to http://trac-hacks.org/wiki/MathCaptchaPlugin for allowing Trac users to register bugs anonymously whilst not locking out our testing team.
  • See if we can not send emails out to users for the updates they make themselves (maybe fixed in 0.12.x?)
  • Investigate a fix for the last section edit doubling-up the footers (maybe fixed in 0.12.x?)

Release Process

Translation Process

  • Bzr start-commit hook to update all languages (need a script rather than the current appadmin UI method)
    cd web2py
    python web2py.py -S eden -R applications/eden/static/scripts/tools/languages.py
    
  • Scripts to automate the conversion 2 PO & upload/download to/from Pootle: UserGuidelinesLocalisation

UserGuidelinesUpgrade

DeveloperGuidelinesDataMigration

Pakistan

Note: See TracWiki for help on using the wiki.