Skip to content

Commit 3bc9474

Browse files
author
Michael Fero
committed
PHP-232 - Update and simplify TravsCI
Updating currently supported Apache Cassandra versions for Behat exmaple execution
1 parent 99a026a commit 3bc9474

File tree

2 files changed

+72
-75
lines changed

2 files changed

+72
-75
lines changed

.travis.yml

+68-71
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,107 @@
11
language: php
2-
dist: trusty
3-
sudo: true
2+
dist: bionic
3+
os: linux
44
addons:
55
apt:
66
packages:
7+
- cmake
8+
- debhelper
9+
- devscripts
10+
- dh-exec
11+
- fakeroot
712
- libssl-dev
8-
- oracle-java8-installer
13+
- libuv1-dev
14+
- openjdk-8-jdk-headless
915
cache:
1016
ccache: true
1117
directories:
1218
- ${HOME}/dependencies
1319
php:
14-
- 5.6
15-
- 7.0
16-
- 7.1
1720
- 7.2
1821
- 7.3
22+
- 7.4
1923

2024
env:
2125
global:
22-
# Configure the .phpt tests to be Travis friendly
26+
# Configure the quality assurance tests to be TravisCI friendly
2327
- REPORT_EXIT_STATUS=1
2428
- TEST_PHP_ARGS="-q -s output.txt -g XFAIL,FAIL,BORK,WARN,LEAK,SKIP -x --show-diff"
2529
# Add the pip installation folder to the PATH, until https://github.com/travis-ci/travis-ci/issues/3563 is fixed
2630
- PATH=${HOME}/.local/bin:${PATH}
2731
# Indicate the cached dependencies directory
2832
- CACHED_DEPENDENCIES_DIRECTORY=${HOME}/dependencies
29-
# Add libuv source build for container based TravisCI
30-
- LIBUV_VERSION=1.14.1
31-
- LIBUV_ROOT_DIR=${CACHED_DEPENDENCIES_DIRECTORY}/libuv/${LIBUV_VERSION}
33+
# Add DataStax C/C++ driver packages for cacheing
3234
- PHP_DRIVER_BUILD_DIRECTORY=/tmp/php-driver/build
3335
- CPP_DRIVER_SOURCE_DIRECTORY=${TRAVIS_BUILD_DIR}/lib/cpp-driver
3436
- CPP_DRIVER_BUILD_DIRECTORY=${PHP_DRIVER_BUILD_DIRECTORY}/cpp-driver
35-
- CPP_DRIVER_INSTALL_DIRECTORY=${CACHED_DEPENDENCIES_DIRECTORY}/cpp-driver
37+
# Add JAVA_HOME for non-java projects
38+
- JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
39+
- PATH=${JAVA_HOME}/bin:${PATH}
40+
# BEHAT integration configuration settings
41+
- BEHAT_EXTRA_OPTIONS=
42+
- BEHAT_SKIP_TAGS=~@skip-ci
3643

3744
before_install:
38-
# Configure, build, install (or used cached libuv)
39-
- if [ ! -d "${LIBUV_ROOT_DIR}" ]; then
40-
pushd /tmp;
41-
wget -q http://dist.libuv.org/dist/v${LIBUV_VERSION}/libuv-v${LIBUV_VERSION}.tar.gz;
42-
tar xzf libuv-v${LIBUV_VERSION}.tar.gz;
43-
pushd /tmp/libuv-v${LIBUV_VERSION};
44-
sh autogen.sh;
45-
./configure --prefix=${LIBUV_ROOT_DIR};
46-
make -j$(nproc) install;
47-
popd;
48-
popd;
49-
else echo "Using Cached libuv v${LIBUV_VERSION}. Dependency does not need to be re-compiled";
50-
fi
51-
### Build and configure the PHP driver extension ###
52-
- mkdir -p ${PHP_DRIVER_BUILD_DIRECTORY}
53-
# Determine the version number for the C/C++ driver dependency
45+
# Get the DataStax C/C++ driver version
5446
- export CPP_DRIVER_VERSION_MAJOR=$(grep CASS_VERSION_MAJOR ${CPP_DRIVER_SOURCE_DIRECTORY}/include/cassandra.h | sed 's/[^0-9]*//g')
5547
- export CPP_DRIVER_VERSION_MINOR=$(grep CASS_VERSION_MINOR ${CPP_DRIVER_SOURCE_DIRECTORY}/include/cassandra.h | sed 's/[^0-9]*//g')
5648
- export CPP_DRIVER_VERSION_PATCH=$(grep CASS_VERSION_PATCH ${CPP_DRIVER_SOURCE_DIRECTORY}/include/cassandra.h | sed 's/[^0-9]*//g')
5749
- export CPP_DRIVER_VERSION=${CPP_DRIVER_VERSION_MAJOR}.${CPP_DRIVER_VERSION_MINOR}.${CPP_DRIVER_VERSION_PATCH}
58-
- pushd lib/cpp-driver; export CPP_DRIVER_VERSION_SHA=$(git rev-parse --short HEAD); popd
59-
# Build the C/C++ driver dependency (or used cached C/C++ driver)
60-
- if [ ! -d "${CPP_DRIVER_INSTALL_DIRECTORY}/${CPP_DRIVER_VERSION}/${CPP_DRIVER_VERSION_SHA}" ]; then
61-
mkdir -p ${CPP_DRIVER_BUILD_DIRECTORY};
62-
pushd ${CPP_DRIVER_BUILD_DIRECTORY};
63-
cmake -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_INSTALL_PREFIX:PATH=${CPP_DRIVER_INSTALL_DIRECTORY}/${CPP_DRIVER_VERSION}/${CPP_DRIVER_VERSION_SHA} -DCASS_BUILD_STATIC=ON -DCASS_BUILD_SHARED=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCASS_USE_ZLIB=ON ${CPP_DRIVER_SOURCE_DIRECTORY};
64-
make -j$(nproc) install;
65-
pushd ${CPP_DRIVER_INSTALL_DIRECTORY}/${CPP_DRIVER_VERSION}/${CPP_DRIVER_VERSION_SHA}/lib;
66-
rm -f libcassandra.{dylib,so};
67-
mv libcassandra_static.a libcassandra.a;
68-
popd;
69-
popd;
50+
51+
# Get the SHA and construct the cached directory for the DataStax C/C++ driver packages
52+
- (
53+
cd lib/cpp-driver;
54+
export CPP_DRIVER_VERSION_SHA=$(git rev-parse --short HEAD);
55+
)
56+
- export CPP_DRIVER_CACHED_DIRECTORY=${CACHED_DEPENDENCIES_DIRECTORY}/cpp-driver/${CPP_DRIVER_VERSION}/${CPP_DRIVER_VERSION_SHA}
57+
58+
# Determine if the DataStax C/C++ driver should be built
59+
- if [ ! -d "${CPP_DRIVER_CACHED_DIRECTORY}" ]; then
60+
(
61+
cd ${CPP_DRIVER_SOURCE_DIRECTORY}/packaging;
62+
./build_deb.sh;
63+
mkdir -p ${CPP_DRIVER_CACHED_DIRECTORY};
64+
find build -type f -name "*.deb" -exec mv {} ${CPP_DRIVER_CACHED_DIRECTORY} \;;
65+
)
7066
else echo "Using Cached C/C++ driver v${CPP_DRIVER_VERSION}-${CPP_DRIVER_VERSION_SHA}. Dependency does not need to be re-compiled";
71-
fi
72-
# PHPize the extension for configuration and building
73-
- pushd ${TRAVIS_BUILD_DIR}/ext && phpize && popd
74-
# Configure, build, and install the extension
75-
- pushd ${PHP_DRIVER_BUILD_DIRECTORY}
76-
- LIBS="-lssl -lz -luv -lm -lstdc++" LDFLAGS="-L${CPP_DRIVER_INSTALL_DIRECTORY}/${CPP_DRIVER_VERSION}/${CPP_DRIVER_VERSION_SHA}/lib -L${LIBUV_ROOT_DIR}/lib" ${TRAVIS_BUILD_DIR}/ext/configure --with-cassandra=${CPP_DRIVER_INSTALL_DIRECTORY}/${CPP_DRIVER_VERSION}/${CPP_DRIVER_VERSION_SHA} --with-uv=${LIBUV_ROOT_DIR}
77-
- make -j$(nproc) install
78-
- popd
79-
# Enable the extension
80-
- echo "extension=cassandra.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
81-
### Install CCM for Behat testing ###
82-
- pip install --user ccm
67+
fi;
68+
69+
# Install the DataStax C/C++ driver
70+
- sudo dpkg -i ${CPP_DRIVER_CACHED_DIRECTORY}/*
71+
72+
install:
73+
# Prepare the build environment for the PHP extension
74+
- (
75+
cd ${TRAVIS_BUILD_DIR}/ext;
76+
phpize;
77+
)
78+
79+
# Configure, build, install, and enable the DataStax PHP driver
80+
- mkdir -p ${PHP_DRIVER_BUILD_DIRECTORY}
81+
- (
82+
cd ${PHP_DRIVER_BUILD_DIRECTORY};
83+
${TRAVIS_BUILD_DIR}/ext/configure;
84+
make -j$(nproc) install;
85+
echo "extension=cassandra.so" >> $(php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||");
86+
)
8387

8488
before_script:
85-
# Install composer dependencies
89+
# Update composer and install the test dependencies
8690
- composer self-update
8791
- composer install -n
88-
# Use the BEHAT_EXTRA_OPTIONS to supply options to Behat runs
89-
- BEHAT_EXTRA_OPTIONS=
90-
# Use the BEHAT_SKIP_TAGS to skip tests on TravisCI
91-
- BEHAT_SKIP_TAGS=~@skip-ci
92-
- export BEHAT_EXTRA_OPTIONS BEHAT_SKIP_TAGS
93-
# Switch to Java 8 for non-java projects
94-
- if [ $(uname -a | grep x86_64 >/dev/null) ]; then
95-
ARCH_SUFFIX=amd64;
96-
else ARCH_SUFFIX=i386;
97-
fi
98-
- if [ -d "/usr/lib/jvm/java-8-oracle-$ARCH_SUFFIX" ]; then
99-
export JAVA_HOME="/usr/lib/jvm/java-8-oracle-$ARCH_SUFFIX";
100-
else export JAVA_HOME="/usr/lib/jvm/java-8-oracle";
101-
fi
102-
- export PATH=${JAVA_HOME}/bin:${PATH}
10392

10493
script:
105-
# Execute .phpt tests
106-
- pushd ${PHP_DRIVER_BUILD_DIRECTORY} && make test && popd
94+
# Execute the quality assurance tests
95+
- (
96+
cd ${PHP_DRIVER_BUILD_DIRECTORY};
97+
make test;
98+
)
99+
107100
# Execute the unit tests
108101
- ./bin/phpunit --testsuite unit
109-
# Execute the Behat tests
110-
- ./bin/behat --tags="${BEHAT_SKIP_TAGS}" ${BEHAT_EXTRA_OPTIONS}
102+
103+
# Execute the examples/tests using Behat and the latest version of Apache Cassandra (master branch only)
104+
- if [ "${TRAVIS_BRANCH}" = "master" ]; then
105+
pip install --user ccm;
106+
./bin/behat --tags="${BEHAT_SKIP_TAGS}" ${BEHAT_EXTRA_OPTIONS};
107+
fi;

behat.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ default:
77
88
contexts:
99
- FeatureContext:
10-
cassandra_version: "3.11.3"
10+
cassandra_version: "3.11.6"
1111

1212
cassandra-version-3.0:
1313
formatters:
@@ -18,7 +18,7 @@ cassandra-version-3.0:
1818
1919
contexts:
2020
- FeatureContext:
21-
cassandra_version: "3.0.17"
21+
cassandra_version: "3.0.20"
2222

2323
cassandra-version-2.2:
2424
formatters:
@@ -29,7 +29,7 @@ cassandra-version-2.2:
2929
3030
contexts:
3131
- FeatureContext:
32-
cassandra_version: "2.2.13"
32+
cassandra_version: "2.2.16"
3333

3434
cassandra-version-2.1:
3535
formatters:
@@ -40,4 +40,4 @@ cassandra-version-2.1:
4040
4141
contexts:
4242
- FeatureContext:
43-
cassandra_version: "2.1.20"
43+
cassandra_version: "2.1.21"

0 commit comments

Comments
 (0)