diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..ed7c32d6f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,26 @@ +image: fox/selenium-ci + +before_script: + - pwd + - ln -s `pwd` ../../tt-rss + - cp utils/gitlab-ci/nginx-default /etc/nginx/sites-enabled/default + - /etc/init.d/postgresql start + - /etc/init.d/nginx start + - /etc/init.d/php5-fpm start + - /usr/local/sbin/init-database.sh + - cp utils/gitlab-ci/config-template.php config.php + - chmod -R 777 cache lock feed-icons + - /usr/local/sbin/init-selenium.sh + +stages: + - test + +jobs: + only: + - triggers + stage: test + script: + - sh ./utils/gitlab-ci/php-lint.sh + - sh ./utils/gitlab-ci/check-schema.sh + - su -s /bin/bash -m www-data -c "php ./update.php --debug-feed 1" + - phpunit ./tests/functional/*.php diff --git a/tests/functional/basic.php b/tests/functional/basic.php new file mode 100644 index 000000000..38c25779e --- /dev/null +++ b/tests/functional/basic.php @@ -0,0 +1,25 @@ +setHost('localhost'); + $this->setPort(4444); + $this->setBrowserUrl('http://localhost/tt-rss/'); + $this->setBrowser('firefox'); + } + + public function setUpPage() { + $this->timeouts()->implicitWait(10000); + } + + public function testLogin() { + $this->url('/index.php'); + + $this->byName("login")->value('admin'); + $this->byName("password")->value('password'); + $this->byCssSelector('#dijit_form_Button_0_label')->click(); + + $this->byCssSelector('#feedTree')->displayed(); + } + +} diff --git a/utils/gitlab-ci/check-schema.sh b/utils/gitlab-ci/check-schema.sh new file mode 100644 index 000000000..a7e63ae01 --- /dev/null +++ b/utils/gitlab-ci/check-schema.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +export PGPASSWORD=test + +psql -h localhost -q -U test test < schema/ttrss_schema_pgsql.sql diff --git a/utils/gitlab-ci/config-template.php b/utils/gitlab-ci/config-template.php new file mode 100644 index 000000000..abe34442e --- /dev/null +++ b/utils/gitlab-ci/config-template.php @@ -0,0 +1,207 @@ + System), syslog - logs to system log. + // Setting this to blank uses PHP logging (usually to http server + // error.log). + + define('CONFIG_VERSION', 26); + // Expected config version. Please update this option in config.php + // if necessary (after migrating all new options from this file). + + // vim:ft=php diff --git a/utils/gitlab-ci/nginx-default b/utils/gitlab-ci/nginx-default new file mode 100644 index 000000000..f64e93af9 --- /dev/null +++ b/utils/gitlab-ci/nginx-default @@ -0,0 +1,81 @@ +## +# You should look at the following URL's in order to grasp a solid understanding +# of Nginx configuration files in order to fully unleash the power of Nginx. +# http://wiki.nginx.org/Pitfalls +# http://wiki.nginx.org/QuickStart +# http://wiki.nginx.org/Configuration +# +# Generally, you will want to move this file somewhere, and start with a clean +# file but keep this around for reference. Or just disable in sites-enabled. +# +# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. +## + +# Default server configuration +# +server { + listen 80 default_server; + listen [::]:80 default_server; + + # SSL configuration + # + # listen 443 ssl default_server; + # listen [::]:443 ssl default_server; + # + # Self signed certs generated by the ssl-cert package + # Don't use them in a production server! + # + # include snippets/snakeoil.conf; + + root /builds/; + + # Add index.php to the list if you are using PHP + index index.php index.html index.htm index.nginx-debian.html; + + server_name _; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + try_files $uri $uri/ =404; + autoindex on; + } + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + location ~ \.php$ { + include snippets/fastcgi-php.conf; + + # With php5-cgi alone: + #fastcgi_pass 127.0.0.1:9000; + # With php5-fpm: + fastcgi_pass unix:/var/run/php5-fpm.sock; + } + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} +} + + +# Virtual Host configuration for example.com +# +# You can move that to a different file under sites-available/ and symlink that +# to sites-enabled/ to enable it. +# +#server { +# listen 80; +# listen [::]:80; +# +# server_name example.com; +# +# root /var/www/example.com; +# index index.html; +# +# location / { +# try_files $uri $uri/ =404; +# } +#} diff --git a/utils/gitlab-ci/php-lint.sh b/utils/gitlab-ci/php-lint.sh new file mode 100644 index 000000000..ceaee1466 --- /dev/null +++ b/utils/gitlab-ci/php-lint.sh @@ -0,0 +1,3 @@ +#!/bin/sh -e + +exec find . -name "*.php" -print0 | xargs -0 -n1 php -q -l