forked from Beakerboy/sqlsrv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
137 lines (134 loc) · 7.47 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
language: php
# Functional and Unit tests require Apache
env:
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-kernel
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-kernel-1
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-kernel-2
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-kernel-3
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=passing_functional,passing_unit CODE_SNIFF=yes APACHE=yes
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=passing_functional2 APACHE=yes
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=failing
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-functional-1 APACHE=yes
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-functional-2 APACHE=yes
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-functional-3 APACHE=yes
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-functional-4 APACHE=yes
- DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=core-extensions-functional-5 APACHE=yes
matrix:
allow_failures:
- env: DBVERSION=2017 DRUPAL_VERSION=8.8.x TEST_SUITE=failing
php:
- '7.3'
before_install:
# remove Xdebug to speed up test runner
- phpenv config-rm xdebug.ini
- pecl channel-update pecl.php.net
# Install SQL Server for Linux
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-$DBVERSION.list)"
- sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
- sudo apt-get update
- sudo ACCEPT_EULA=Y apt-get install -y mssql-server mssql-tools unixodbc-dev
- export MSSQL_SA_PASSWORD=Password12!
- export ACCEPT_EULA=Y
- export MSSQL_PID=Evaluation
- export SIMPLETEST_BASE_URL=http://127.0.0.1
- sudo /opt/mssql/bin/mssql-conf setup
- sleep 15
- /opt/mssql-tools/bin/sqlcmd -P Password12! -S localhost -U SA -Q 'CREATE DATABASE mydrupalsite COLLATE Latin1_General_CI_AI'
# Install the pdo_sqlsrv extension
- sudo ACCEPT_EULA=Y apt-get -y install msodbcsql17 unixodbc-dev gcc g++ make autoconf libc-dev pkg-config
- pecl install sqlsrv pdo_sqlsrv
- yes "autodetect" | pecl install yaml
- phpenv config-add dev/travis/travis-7.x.ini
install:
# Create a Drupal Site
- cd ..
- export COMPOSER_MEMORY_LIMIT=-1
- git clone https://git.drupalcode.org/project/drupal.git -b $DRUPAL_VERSION drupal-project
- cd drupal-project
- composer config -g github-oauth.github.com $GITHUB_OAUTH
- composer install
- |
if [ "${DRUPAL_VERSION}" == "9.0.x" ]; then
wget https://www.drupal.org/files/issues/2020-02-11/2867788-71.patch
git apply 2867788-71.patch
else
composer require --dev symfony/phpunit-bridge phpstan/extension-installer jangregor/phpstan-prophecy mglaman/phpstan-drupal
composer update phpunit/phpunit symfony/phpunit-bridge phpspec/prophecy symfony/yaml --with-dependencies
composer require --dev phpstan/phpstan-phpunit
# Core patches
# Logger backtrace incorrect. pushed to 9.x
wget https://www.drupal.org/files/issues/2020-02-22/2867788-79.patch
# core Condition not able to be overridden in views...needs work.
wget https://www.drupal.org/files/issues/2020-05-04/3130655-10.patch
git apply 2867788-79.patch
git apply 3130655-10.patch
# Testing-only patches
# Fix format of deprecation notices for phpcs
wget https://www.drupal.org/files/issues/2020-02-25/3108540-11.patch
# Add a sqlsrv-specific datatype to test
wget https://www.drupal.org/files/issues/2020-02-05/drupal-3111134-database_specific_types-3.patch
# Enable sqlsrv module in specific kernel tests
wget https://www.drupal.org/files/issues/2020-05-02/2966272-16.patch
git apply 2966272-16.patch
git apply drupal-3111134-database_specific_types-3.patch
git apply 3108540-11.patch
if [ "${DRUPAL_VERSION}" == "8.8.x" ]; then
# Override core Condition...pushed to 8.9.x
wget https://www.drupal.org/files/issues/2020-03-10/3113403-33.patch
git apply 3113403-33.patch
# docbloc return type not correct...for phpstan. Pushed to 8.9.x
wget https://www.drupal.org/files/issues/2020-04-07/3125391-9_0.patch
git apply 3125391-9_0.patch
# CONCAT_WS requires at least three arguments...needs work
wget https://www.drupal.org/files/issues/2020-04-27/3131379-2.patch
git apply 3131379-2.patch
fi
fi
- cp -r $TRAVIS_BUILD_DIR/drivers ./drivers
- mkdir ./modules/contrib
- mv $TRAVIS_BUILD_DIR/dev/travis/TestSuites $TRAVIS_BUILD_DIR/tests/src/
- cp -rf $TRAVIS_BUILD_DIR ./modules/contrib/sqlsrv
- PATH=$PATH:$TRAVIS_BUILD_DIR/../drupal-project/vendor/bin
- mkdir $TRAVIS_BUILD_DIR/../drupal-project/sites/simpletest
- mkdir $TRAVIS_BUILD_DIR/../drupal-project/sites/simpletest/browser_output
- cd $TRAVIS_BUILD_DIR/../drupal-project
- sed -e "s?WEB_DIR?$(pwd)?g" --in-place $TRAVIS_BUILD_DIR/dev/travis/phpunit.xml.dist
# Install REGEX CLR
- wget https://github.com/Beakerboy/drupal-sqlsrv-regex/releases/download/1.0/RegEx.dll
- sudo mv RegEx.dll /var/opt/mssql/data/
- /opt/mssql-tools/bin/sqlcmd -P Password12! -S localhost -U SA -d mydrupalsite -Q "EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'clr strict security', 0; RECONFIGURE; EXEC sp_configure 'clr enable', 1; RECONFIGURE"
- /opt/mssql-tools/bin/sqlcmd -P Password12! -S localhost -U SA -d mydrupalsite -Q "CREATE ASSEMBLY Regex from '/var/opt/mssql/data/RegEx.dll' WITH PERMISSION_SET = SAFE"
- /opt/mssql-tools/bin/sqlcmd -P Password12! -S localhost -U SA -d mydrupalsite -Q "CREATE FUNCTION dbo.REGEXP(@pattern NVARCHAR(100), @matchString NVARCHAR(100)) RETURNS bit EXTERNAL NAME Regex.RegExCompiled.RegExCompiledMatch"
- cd $TRAVIS_BUILD_DIR/../drupal-project
before_script:
- |
if ! [ -z "$APACHE" ]; then
sudo apt-get update
sudo apt-get install apache2 libapache2-mod-fastcgi
# enable php-fpm
sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
sudo a2enmod rewrite actions fastcgi alias
echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
sudo chown -R travis:travis /var/lib/apache2/fastcgi
~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
# configure apache virtual hosts
sudo cp -f $TRAVIS_BUILD_DIR/dev/travis/travis-ci-apache /etc/apache2/sites-available/000-default.conf
cd $TRAVIS_BUILD_DIR/../drupal-project
sudo sed -e "s?%TRAVIS_WEB_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
sudo service apache2 restart
fi
script:
- cp $TRAVIS_BUILD_DIR/dev/travis/phpunit.xml.dist $TRAVIS_BUILD_DIR/../drupal-project/core/phpunit.xml
- cd $TRAVIS_BUILD_DIR/../drupal-project
- vendor/bin/phpunit -v -c core/phpunit.xml --testsuite=$TEST_SUITE
- |
if ! [ -z "$CODE_SNIFF" ]; then
phpcs --config-set installed_paths $TRAVIS_BUILD_DIR/../drupal-project/vendor/drupal/coder/coder_sniffer
phpcs --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml modules/contrib/sqlsrv
fi
- |
if ! [ -z "$CODE_SNIFF" ]; then
vendor/bin/phpstan analyze modules/contrib/sqlsrv --level 4 -c $TRAVIS_BUILD_DIR/dev/phpstan.neon
fi