Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update Travis infrastructure to latest wp-cli

  • Loading branch information...
commit 9e6cfc750dff3be014492ee675f34aea3456a4b6 1 parent b6a5dd5
Nikolay Bachiyski nb authored
Showing with 93 additions and 33 deletions.
  1. +5 −29 .travis.yml
  2. +78 −0 bin/install-wp-tests.sh
  3. +10 −4 t/bootstrap.php
34 .travis.yml
View
@@ -6,36 +6,12 @@ php:
- 5.4
env:
- - WP_VERSION=master WP_MULTISITE=0
- - WP_VERSION=3.5.1 WP_MULTISITE=0
- - WP_VERSION=master WP_MULTISITE=1
- - WP_VERSION=3.5.1 WP_MULTISITE=1
-
-before_install:
- - git submodule update --init --recursive
+ - WP_VERSION=latest WP_MULTISITE=0
+ - WP_VERSION=latest WP_MULTISITE=1
+ - WP_VERSION=3.8 WP_MULTISITE=0
+ - WP_VERSION=3.8 WP_MULTISITE=1
before_script:
- # set up WP install
- - WP_CORE_DIR=/tmp/wordpress/
- - wget -nv -O /tmp/wordpress.tar.gz https://github.com/WordPress/WordPress/tarball/$WP_VERSION
- - mkdir -p $WP_CORE_DIR
- - tar --strip-components=1 -zxmf /tmp/wordpress.tar.gz -C $WP_CORE_DIR
- - plugin_slug=$(basename $(pwd))
- - plugin_dir=$WP_CORE_DIR/wp-content/plugins/$plugin_slug
- - cd ..
- - mv $plugin_slug $plugin_dir
- # set up testing suite
- - export WP_TESTS_DIR=/tmp/wordpress-tests/
- - svn co --ignore-externals http://unit-tests.svn.wordpress.org/trunk/ $WP_TESTS_DIR
- - cd $WP_TESTS_DIR
- - cp wp-tests-config-sample.php wp-tests-config.php
- - sed -i "s:dirname( __FILE__ ) . '/wordpress/':'$WP_CORE_DIR':" wp-tests-config.php
- - sed -i "s/yourdbnamehere/wordpress_test/" wp-tests-config.php
- - sed -i "s/yourusernamehere/root/" wp-tests-config.php
- - sed -i "s/yourpasswordhere//" wp-tests-config.php
- # set up database
- - mysql -e 'CREATE DATABASE wordpress_test;' -uroot
- # prepare for running the tests
- - cd $plugin_dir
+ - bash bin/install-wp-tests.sh wordpress_test root '' localhost $WP_VERSION
script: phpunit
78 bin/install-wp-tests.sh
View
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+if [ $# -lt 3 ]; then
+ echo "usage: $0 <db-name> <db-user> <db-pass> [db-host] [wp-version]"
+ exit 1
+fi
+
+DB_NAME=$1
+DB_USER=$2
+DB_PASS=$3
+DB_HOST=${4-localhost}
+WP_VERSION=${5-latest}
+
+WP_TESTS_DIR=${WP_TESTS_DIR-/tmp/wordpress-tests-lib}
+WP_CORE_DIR=/tmp/wordpress/
+
+set -ex
+
+install_wp() {
+ mkdir -p $WP_CORE_DIR
+
+ if [ $WP_VERSION == 'latest' ]; then
+ local ARCHIVE_NAME='latest'
+ else
+ local ARCHIVE_NAME="wordpress-$WP_VERSION"
+ fi
+
+ wget -nv -O /tmp/wordpress.tar.gz http://wordpress.org/${ARCHIVE_NAME}.tar.gz
+ tar --strip-components=1 -zxmf /tmp/wordpress.tar.gz -C $WP_CORE_DIR
+
+ wget -nv -O $WP_CORE_DIR/wp-content/db.php https://raw.github.com/markoheijnen/wp-mysqli/master/db.php
+}
+
+install_test_suite() {
+ # portable in-place argument for both GNU sed and Mac OSX sed
+ if [[ $(uname -s) == 'Darwin' ]]; then
+ local ioption='-i .bak'
+ else
+ local ioption='-i'
+ fi
+
+ # set up testing suite
+ mkdir -p $WP_TESTS_DIR
+ cd $WP_TESTS_DIR
+ svn co --quiet http://develop.svn.wordpress.org/trunk/tests/phpunit/includes/
+
+ wget -nv -O wp-tests-config.php http://develop.svn.wordpress.org/trunk/wp-tests-config-sample.php
+ sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR':" wp-tests-config.php
+ sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" wp-tests-config.php
+ sed $ioption "s/yourusernamehere/$DB_USER/" wp-tests-config.php
+ sed $ioption "s/yourpasswordhere/$DB_PASS/" wp-tests-config.php
+ sed $ioption "s|localhost|${DB_HOST}|" wp-tests-config.php
+}
+
+install_db() {
+ # parse DB_HOST for port or socket references
+ local PARTS=(${DB_HOST//\:/ })
+ local DB_HOSTNAME=${PARTS[0]};
+ local DB_SOCK_OR_PORT=${PARTS[1]};
+ local EXTRA=""
+
+ if ! [ -z $DB_HOSTNAME ] ; then
+ if [[ "$DB_SOCK_OR_PORT" =~ ^[0-9]+$ ]] ; then
+ EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp"
+ elif ! [ -z $DB_SOCK_OR_PORT ] ; then
+ EXTRA=" --socket=$DB_SOCK_OR_PORT"
+ elif ! [ -z $DB_HOSTNAME ] ; then
+ EXTRA=" --host=$DB_HOSTNAME --protocol=tcp"
+ fi
+ fi
+
+ # create database
+ mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA
+}
+
+install_wp
+install_test_suite
+install_db
14 t/bootstrap.php
View
@@ -1,8 +1,14 @@
<?php
-$GLOBALS['wp_tests_options'] = array(
- 'active_plugins' => array( basename( dirname( dirname( __FILE__ ) ) ) . '/liveblog.php' ),
-);
+$_tests_dir = getenv('WP_TESTS_DIR');
+if ( !$_tests_dir ) $_tests_dir = '/tmp/wordpress-tests-lib';
-require getenv( 'WP_TESTS_DIR' ) . '/includes/bootstrap.php';
+require_once $_tests_dir . '/includes/functions.php';
+
+function _manually_load_plugin() {
+ require dirname( __FILE__ ) . '/../liveblog.php';
+}
+tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
+
+require $_tests_dir . '/includes/bootstrap.php';
Please sign in to comment.
Something went wrong with that request. Please try again.