diff --git a/.travis.yml b/.travis.yml index 96f02d83..4a31ae58 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,22 +15,27 @@ env: - PHPSQLDIR=/REPO/msphpsql-dev - TEST_PHP_SQL_SERVER=sql - SQLSRV_DBNAME=msphpsql_sqlsrv - - PDOSQLSRV_DBNAME=msphpsql_pdosqlsrv + - PDOSQLSRV_DBNAME=msphpsql_pdosqlsrv before_install: - docker pull microsoft/mssql-server-linux install: + - docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password123' -p 1433:1433 --name=$TEST_PHP_SQL_SERVER -d microsoft/mssql-server-linux - docker build --build-arg PHPSQLDIR=$PHPSQLDIR -t msphpsql-dev -f Dockerfile-msphpsql . - - docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password12@' -p 1433:1433 --name=$TEST_PHP_SQL_SERVER -d microsoft/mssql-server-linux +before_script: + - sleep 30 + script: - - docker run -e TRAVIS_JOB_ID -t -d -w $PHPSQLDIR --link $TEST_PHP_SQL_SERVER --name=client msphpsql-dev - - docker ps -a + - docker run -e TRAVIS_JOB_ID -t -d -w $PHPSQLDIR --name=client --link $TEST_PHP_SQL_SERVER msphpsql-dev + - docker ps -a + - docker logs client - docker exec client python ./test/functional/setup/setup_dbs.py -dbname $SQLSRV_DBNAME - docker exec client python ./test/functional/setup/setup_dbs.py -dbname $PDOSQLSRV_DBNAME - docker exec client php ./source/pdo_sqlsrv/run-tests.php ./test/functional/pdo_sqlsrv/*.phpt - docker exec client php ./source/sqlsrv/run-tests.php ./test/functional/sqlsrv/*.phpt + - docker logs client - docker exec client bash -c 'for f in ./test/functional/sqlsrv/*.diff; do ls $f 2>/dev/null; cat $f 2>/dev/null; done || true' - docker exec client bash -c 'for f in ./test/functional/sqlsrv/*.out; do ls $f 2>/dev/null; cat $f 2>/dev/null; done || true' - docker exec client bash -c 'for f in ./test/functional/pdo_sqlsrv/*.diff; do ls $f 2>/dev/null; cat $f 2>/dev/null; done || true' diff --git a/Dockerfile-msphpsql b/Dockerfile-msphpsql index 81ff073f..6cff1116 100644 --- a/Dockerfile-msphpsql +++ b/Dockerfile-msphpsql @@ -4,29 +4,29 @@ FROM ubuntu:16.04 # Update Ubuntu Software repository RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \ - apt-get -y install \ - apt-transport-https \ - apt-utils \ - autoconf \ - curl \ - g++ \ - gcc \ - git \ - lcov \ - libxml2-dev \ - locales \ - make \ - php7.0 \ - php7.0-dev \ - python-pip \ - re2c \ - unixodbc-dev \ - unzip && apt-get clean - + apt-get -y install \ + apt-transport-https \ + apt-utils \ + autoconf \ + curl \ + g++ \ + gcc \ + git \ + lcov \ + libxml2-dev \ + locales \ + make \ + php7.0 \ + php7.0-dev \ + python-pip \ + re2c \ + unixodbc-dev \ + unzip && apt-get clean + ARG PHPSQLDIR=/REPO/msphpsql-dev ENV TEST_PHP_SQL_SERVER sql ENV TEST_PHP_SQL_UID sa -ENV TEST_PHP_SQL_PWD Password12@ +ENV TEST_PHP_SQL_PWD Password123 # set locale to utf-8 RUN locale-gen en_US.UTF-8 @@ -36,10 +36,7 @@ ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - RUN curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list -#RUN echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-xenial-release/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list -#RUN apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893 RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql mssql-tools - ENV PATH="/opt/mssql-tools/bin:${PATH}" #install coveralls @@ -47,11 +44,9 @@ RUN pip install --upgrade pip && pip install cpp-coveralls #Either Install git / download zip (One can see other strategies : https://ryanfb.github.io/etc/2015/07/29/git_strategies_for_docker.html ) #One option is to get source from zip file of repository. - #another option is to copy source to build directory on image RUN mkdir -p $PHPSQLDIR COPY . $PHPSQLDIR - WORKDIR $PHPSQLDIR/source/ RUN chmod +x ./packagize.sh @@ -79,6 +74,9 @@ RUN sed -i -e 's/TARGET_DATABASE/msphpsql_sqlsrv/g' MsSetup.inc RUN sed -i -e 's/TARGET_USERNAME/'"$TEST_PHP_SQL_UID"'/g' MsSetup.inc RUN sed -i -e 's/TARGET_PASSWORD/'"$TEST_PHP_SQL_PWD"'/g' MsSetup.inc -ENV REPORT_EXIT_STATUS 1 -ENV TEST_PHP_EXECUTABLE /usr/bin/php +WORKDIR $PHPSQLDIR +RUN chmod +x ./entrypoint.sh +CMD /bin/bash ./entrypoint.sh +ENV REPORT_EXIT_STATUS 1 +ENV TEST_PHP_EXECUTABLE /usr/bin/php \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 00000000..ffa47b4b --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,16 @@ +set -e + +testConnection="/opt/mssql-tools/bin/sqlcmd -S sql -U sa -P Password123" + +for run in {1..10}; do + +>&2 echo "SQL Server is starting up.." +if $testConnection; then + >&2 echo "SQL Server is up!" + break; +else + sleep 6 +fi +done + +