Phabricator/Deployment

From Wikitech
Revision as of 22:19, 3 June 2022 by Brennen Bearnes (talk | contribs) (Mention maintenance windows.)

Deployment windows

Except for emergencies, Phabricator deployments should be conducted during mw:Phabricator/Maintenance windows.

Initial setup

You'll need:

Tagging a release

  • scripts for tagging and pushing
  • ./scripts/tag-release.sh
    • tags all submodules
    • outputs markup for milestone (but this sometimes fails)
    • make sure everything got pushed
  • phab1001
    • /srv/phab
    • make sure it can pull
    • fetch all submodules on prod
    • ends at detached HEAD state
    • make sure tags are there
    • update.sh in mukunda's homedir on phab1001
      • puppet disable
      • stops `phd`
      • checks out the version
      • stops apache and php
      • /usr/local/sbin/phab_deploy_finalize does db migrations and stuff
    • `!log starting phabricator deploy, momentary downtime expected while apache restarts`
    • `sudo ~/update.sh` and hope for best
    • `systemctl status phd` to make sure that's running
    • `tail /var/log/phd.log` to check for problems
      • always a lot of errors in here because of repo syncing, etc.
    • check `/var/log/apache2/phabricator.log` ???

Make milestone

  • Go into phab project and rename "next" milestone to the date of the deploy
    • i.e. 2020-02-13
    • paste generated markup with stuff from release
    • create a new "next" milestone
      • "This is for tasks ... next phabricator update"
    • mukunda's script used to do this automatically, may need some updating
    • archive the old one