Phabricator/Deployment
This page is currently a draft. More information and discussion about changes to this draft on the talk page. |
Deployment windows
Except for emergencies, Phabricator deployments should be conducted during mw:Phabricator/Maintenance windows.
Initial setup
You'll need:
- A checkout of https://gerrit.wikimedia.org/r/plugins/gitiles/phabricator/deployment/ and all submodules.
- A local install of PHP 7.3.
- A running Phabricator install
- See mw:Phabricator/Local_Dev_Environment for some pointers here
Tagging a release
On your development system
- 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
On 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
- In #wikimedia-operations connect:
!log starting phabricator deploy, momentary downtime expected while apache restarts
sudo ~/update.sh
and hope for bestsystemctl status phd
to make sure that's runningtail /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