When deploying changes to a Craft project, it's often the case that you'll want to do a few things after the new code has been deployed, such as...
Run any new migrations
Apply any project config changes
Clear some of Craft's caches
To help with this, Servd provides the option to run Post Deploy Tasks when a new bundle is selected and synced to an environment. If you haven't changed the bundle, and just perform a sync, then they won't be run.
These tasks can be either Craft console commands or `wget` HTTP requests.
Default Tasks
By default Servd, has the following tasks setup which will be run from top to bottom:
`./craft migrate/all --interactive=0`
`./craft project-config/sync --interactive=0`
`./craft clear-caches/compiled-templates --interactive=0`
`./craft clear-caches/cp-resources --interactive=0`
`./craft clear-caches/data --interactive=0`
Note the `--interactive=0` flag on each of the commands. If any of the commands opens a user prompt it will wait indefinitely and prevent the remaining tasks from completing.
Updating Tasks
To view and edit a project's Post Deploy Tasks, do the following:
Navigate to the "Post Deploy Tasks" section in the project's Build & Deploy settings page.
Edit or delete an existing task, or click the "Add Another" button to add more post deploy tasks.
Click "Save".
Select a new bundle to deploy in one of the project's environment settings pages.
Perform a sync.
The commands will be run after the new bundle is deployed. To view the logs, navigate to the project's Logs page and select "post-deploy-production" or "post-deploy-staging" from the filter dropdown.
Problems With Long Running Tasks
If your Post Deploy Tasks take too long to complete, you my see the following error:
`Deployment timed out after 600 seconds. Post deploy tasks may still be running.`
A common culprit is refreshing the Blitz cache.
After you've identified the long-running task, we recommend either attempting to optimise the command so it completes quicker, or remove it as a post deploy task and run it manually instead.