single source of truth • Missing files during an upload can cause errors • Making a mistake during a deployment is likely — did you follow all the steps? • Unable to easily rollback changes • Users should be able to use the site at all times without being impacted
Never worry about if you copied over the correct files • Automated tasks for tests and builds • Catch errors before the code makes it onto production • Introduce zero-downtime atomic deploys • Easy rollbacks • Simple Slack integration
before attempting a deploy? • Theme build (linting and/or coding standards) • Plugin build (linting and/or coding standards) • Check for security vulnerabilities in plugins • Smoke testing with WP-CLI • Booting a server and loading the home page
cloud application (no need to manage hosting for your CI server) Supports GitHub & BitBucket GitLab user? GitLab CI is also great! We’ll go over a GitLab CI config later
That includes: • Cloning the latest codebase with Git • Running basic tests on the WordPress theme • Installing WordPress, WordPress plugins, and other PHP dependencies with Composer • Building the WordPress theme and transferring compiled assets
provide SSH access • Deploy (and build) the theme in a releases directory • Once the theme is ready, a symlink that’s used for serving the webroot is updated to point to the latest release