Runs a Behat-based test suite against a given branch of the Pantheon WordPress upstream on Pantheon infrastructure to ensure the branch is fully functional on Pantheon.
The purpose of this repository is to ensure a given branch of the Pantheon WordPress Upstream is fully functional on Pantheon infrastructure. This is used as a part of Pantheon's automated WordPress updating process.
On a high level, here's how it works:
TERMINUS_TOKEN
- A machine token used for creating and deleting site environments on Pantheon. Because this token is meant to be kept secret, the value is set in the CircleCI admin, and not tracked in circle.yml
.TERMINUS_SITE
- An existing Pantheon site to be used for running the test suite. This site must support multidev, and the TERMINUS_TOKEN
must be able to create and delete environments for this site.TERMINUS_ENV
- A unique name for the multidev branch to be created, to prevent collisions between jobs.prepare.sh
- Prepares the Pantheon site environment to have the test suite run against it. Preparation includes:
test.sh
- Runs the Behat test suite against the created environment.cleanup.sh
- Cleans up after the test suite has completed. Cleanup includes:
And that's it!
Need to improve this test runner in some way? You can clone the repository locally and run it against any Pantheon site.
WARNING! WARNING!
PLEASE READ THE FOLLOWING VERY CAREFULLY.
BY FORCE PUSHING AGAINST TERMINUS_ENV
AND ERASING THE DATABASE, THIS TEST RUNNER IRREVOCABLY DAMAGES YOUR PANTHEON SITE. USE ONLY WITH A SINGLE-USE, "THROWAWAY" SITE. DO NOT USE WITH ANY PANTHEON SITE THAT CANNOT BE DELETED.
With the warning out of the way, here's how you can use the test runner locally.
First, make sure Terminus is installed and authenticated:
composer global require pantheon-systems/terminus
terminus auth login --machine-token=<secret-token>
Then, you can clone and use the test runner:
git clone git@github.com:pantheon-systems/pantheon-wordpress-upstream-tests.git
cd pantheon-wordpress-upstream-tests
export TERMINUS_SITE=wordpress-upstream
export TERMINUS_ENV=test-1
export WORDPRESS_ADMIN_USERNAME=pantheon
export WORDPRESS_ADMIN_PASSWORD="$(openssl rand -hex 8)"
./prepare.sh
./test.sh
./cleanup.sh
Feel free to open an issue with any questions you may have.