In a previous post, i showed us how to set up automated PHP testing on GitLab CI.

If you are a WordPress developer and has a test suite already for your plugin, theme or WordPress powered web application and would love to use the GitLab CI to run it; my .gitlab-ci.yml below will come in handy.

# Select what we should cache cache: paths: - vendor/ services: - mysql before_script: # Install git, the php image doesn't have installed - apt-get update -yqq - apt-get install git -yqq # instll the required packages for the running CI tests - apt-get -yqqf install vim wget zip unzip subversion mysql-client libmcrypt-dev libmysqlclient-dev --fix-missing # Install mysql driver - docker-php-ext-install mysqli pdo_mysql mbstring # Install Xdebug - pecl install xdebug # PHP extensions - docker-php-ext-enable mysqli pdo_mysql mbstring xdebug # Install composer - curl -sS https://getcomposer.org/installer | php # Install all project dependencies - php composer.phar install - bash bin/install-wp-tests.sh wordpress_test root mysql mysql $WP_VERSION variables: # Configure mysql service (https://hub.docker.com/_/mysql/) MYSQL_DATABASE: wordpress_tests MYSQL_ROOT_PASSWORD: mysql WP_VERSION: latest WP_MULTISITE: "0" # We test PHP5.6 test:php5.6: image: php:5.6 script: - vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clove --colors=never # We test PHP5.6 with multisite test:php5.6:multisite: variables: WP_VERSION: latest WP_MULTISITE: "1" image: php:5.6 script: - vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clove --colors=never # We test PHP7 test:php7: image: php:7 script: - vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover --colors=never # We test PHP7 with multisite test:php7:multisite: variables: WP_VERSION: latest WP_MULTISITE: "1" image: php:7 script: - vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clove --colors=never

Note

The YAML configuration above assume you have your WordPress unit test created with WP CLI hence the bash bin/install-wp-tests.sh wordpress_test root mysql mysql $WP_VERSION . Otherwise replace it whith your own WordPress PHP test setup.

Also, it will run three jobs.

Feel free to make modifications to meet your use case.

La Fin!