We've made a lot of changes and added a bunch of new commands to our deploy tools since the last time we checked in.
Other changes include migration to Fabric's new-style task declaration and updated documentation.
Unit testing tools
To scaffold/set up tests for your theme:
$ fab dev wp.tests.setup:largo-dev
- Drops and recreates your testing database (which should always be throw-away, ephemeral)
- Copies essential test files (e.g. phpunit.xml and a tests directory with test-sample.php and bootstrap.php files) to your theme or plugin directory if they are not already present
- Installs the WordPress test framework to /tmp/wordpress-tests-lib/includes
- Configure a wp-tests-config.php file and place it in /tmp/wordpress-tests-lib
With those files in place, you can run tests for your theme or plugin:
$ fab dev wp.tests.run:largo-dev
Namespaces and aliases
The other big change we made was moving all commands to Fabric's new-style task declaration. Using new-style tasks gives us all the benefits described in Fabric's documentation on the subject.
While the deploy tools are not taking advantage of every feature of new-style tasks, they are better organized thanks to namespacing and aliases.
Here's some example output from
Here you can see each module (and submodules) along with defined tasks. Tasks use dot-syntax, which should feel more explicit and intuitive if you're familiar with Python (which is what Fabric is built on).
Also note that the command
wp.migrations.s2m is an alias for the much-longer, sometimes-harder-to-remember command
I'm very lazy, so anytime I can save some mental energy and type a bit less, I consider it a win. This is as true for commands I use very frequently as it is for commands I use once in a great while.
We also expanded the deploy tools' documentation to include all commands. You can find the documentation on Github.
Remember, the deploy tools were built with our situation in mind. We deploy to WP Engine, so some stuff is very WP Engine specific.
For example, the
wp.fetch_sql_dump command only knows where WP Engine stores recent SQL dumps. The
stop commands assume you are deploying to a host that uses Apache and that you have a .htaccess file in the root of your FTP server.
With that said, much of toolkit will work with any host provided you have (S)FTP access, including the push-button deployment rig I wrote about previously.
If you are using or thinking about using the deploy tools, have questions or suggestions, let us know.