Build:Release Automation:Notes on Staging Setup
From MozillaWiki
Notes on Release Automation Staging Setup
Staging/Production Buildbot master differences
- Signing - prod waits for signed bits, stage fakes w/ symlink ok
- Bootstrap - prod pulls tag e.g. RELEASE_AUTOMATION_M5, staging pulls tip ok
Buildbot master basedir is ~buildmaster/TestBot
The bootstrap.cfg is pulled from the master dir.
Slaves basedirs are in cltbld's home directory on the appropriate machine, e.g. ~cltbld/linux-slave1
Changes can be inserted with "buildbot sendchange" on the master e.g.:
buildbot sendchange --master=localhost:9989 -u rhelmer -m"latest bootstrap from CVS" test
Bootstrap uses a local CVS mirror, and the "tag", "source", "updates", and "stage" builders are run by a local buildslave.
The bootstrap Makefile has the following targets:
- stage/clean_stage
- create/remove basic fileserver/tag/source/updates/stage environment
- cvsmirror/clean_cvsmirror
- create/remove cvsmirror in /builds/cvsmirror
These targets are hard-coded to prepare for a 2.0.0.4 release.
There must be "cltbld" and "symbols" accounts on the staging FTP server that the build machines' cltbld accounts can connect to via SSH without a password.
- must accept staging-build-console's hostkey via this SSH tunnel:
- set up staging FTP server
mkdir /home/ftp /builds /data/cltbld chown cltbld /home/ftp /builds/ /data/cltbld cvs co /mofo/release/stage/ to /data/cltbld/bin groupadd firefox
- set up staging AUS server
# TODO - auto-update mkdir -p /opt/aus2/snippets/staging/backup /opt/aus2/incoming /opt/aus2/app
# check out aus2 cd /opt/aus2/ cvs -d /builds/cvsmirror/cvsroot/ co -d app/ -r AUS2_PRODUCTION mozilla/webtools/aus/xml cd app && ln -s ../incoming ./data cd /var/www/html && ln -s /opt/aus2 aus2 # install apache and php, make apache start on boot yum install httpd php chkconfig --levels 235 --add httpd