implenton/

My WordPress environment for vetting Codeable experts

I have been vetting experts, reviewing both front-end and full-stack (plugin) submissions since 2019 at Codeable. The internal process changed throughout the years, but our commitment to give a fair review remained unchanged.

Part of providing a fair review is making sure we are testing the applicants' code in a "clean" environment. Clean, in this case, means barebones, an environment as typical as a WordPress installation can be.

To achieve this, I'm using wp-env to spin up a "brand new" WordPress installation before every review. As the wp-env reference page says, "it's simple to install and requires no configuration", as long as you have the prerequisites: Docker and Node.js installed.

The process

I start by cloning my boilerplate for the environment. This consists only of a few files:

.
├── .gitignore
├── .wp-env.json.example
├── package.json
├── phpcs
└── setup

Next, I make the initial setup script executable, then run it:

chmod +x ./setup
./setup

It's a simple script but it saves some repetition:

#!/bin/bash
cp .wp-env.json.example .wp-env.json
npm install
chmod +x ./phpcs

In my package.json, I don't have anything besides the wp-env dependency:

{
"devDependencies": {
"@wordpress/env": "^4.5.0"
}
}

One of our selected services for managing the application process is CodeScreen. It's a "developer assessment platform, allowing us to accelerate our hiring by screening developers fairly, quickly, and accurately."

CodeScreen makes the code submission available in a GitHub repo. For this reason, I can clone it in the environment's directory:

git clone git@github.com:codescreen/CodeScreen_xxx.git CodeScreen_xxx

Depending on the application type, I map the plugin or the theme to the WordPress instance. I do this by editing the .wp-env.json file:

{
"mappings": {
"wp-content/plugins/xxx": "./CodeScreen_xxx/wp-content/plugins/xxx"
}
}

At this point, everything is set up, and I can start the local WordPress environment by:

npx wp-env start

We require candidates to follow a coding standard. If they don't explicitly state which one they follow, we assume they are using the WordPress Coding Standard (WPCS). To check the results, I use my helper script:

./phpcs ./CodeScreen_xxx/wp-content/plugins/xxx

This runs the PHPCS with the preinstalled and configured WPCS using a Docker image. This is just a "shortcut script" for:

#!/bin/bash
CMD=$*

if [[ -z ${CMD} ]]; then
echo "No path provided for the PHPCS. Do it?"
exit 1
fi

docker run -it --rm -v $(pwd):/app willhallonline/wordpress-phpcs:alpine phpcs "$CMD"

When I'm done with the review, I stop and destroy the local environment with:

npx wp-env stop
npx wp-env destroy

2022-04-19