We handle deployments using a Continuous Integration (CI) tool, like Jenkins, to automate tasks. It’s more reliable because there’s less human intervention. It’s also faster to deploy and quicker to roll back if there are any issues.
An example workflow:
- A pull request gets merged and triggers a build.
- The CI platform reads and executes a series of build steps to generate the deployment artifact.
- Configure the build environment to match the hosting environment.
- Install required libraries using Composer and NPM.
- Lint and validate code, using tools like Drupal Coder.
- Perform the static analysis of code, using tools like Drupal Check.
- Status of the build is displayed.
- If all the above steps go well, the CI platform deploys the generated deployment artifact.
- Login to the remote environment.
- Take the database backup.
- Deploy the latest code.
- Clear the cache.
- Import the configuration.
- Apply the database updates.
- Send notification to team members after deployment finishes.