121 строка
3.5 KiB
YAML
121 строка
3.5 KiB
YAML
sudo: required
|
|
dist: xenial
|
|
language: php
|
|
php:
|
|
- 7.3
|
|
- 7.4
|
|
|
|
addons:
|
|
postgresql: "9.5"
|
|
apt:
|
|
packages:
|
|
- libxml2-utils
|
|
sauce_connect: true
|
|
|
|
services:
|
|
- mysql
|
|
- postgresql
|
|
|
|
env:
|
|
global:
|
|
- CORE_BRANCH=master
|
|
- DB=sqlite
|
|
- PHP_COVERAGE=FALSE
|
|
- TEST_JS=FALSE
|
|
- SAUCE=FALSE
|
|
- PATCH_VERSION_CHECK=FALSE
|
|
matrix:
|
|
- DB=sqlite
|
|
|
|
matrix:
|
|
include:
|
|
- php: 7.3
|
|
env: "DB=pgsql PHP_COVERAGE=TRUE"
|
|
- php: 7.3
|
|
env: "DB=mysql"
|
|
- php: 7.3
|
|
env: "TEST_JS=TRUE"
|
|
- php: 7.4
|
|
env: "DB=mysql SAUCE=TRUE SELENIUM_BROWSER=firefox"
|
|
- php: 7.4
|
|
env: "DB=mysql SAUCE=TRUE SELENIUM_BROWSER=chrome"
|
|
- php: 7.2
|
|
env: "CORE_BRANCH=stable18"
|
|
- php: 7.3
|
|
env: "CORE_BRANCH=stable19"
|
|
- php: 7.4
|
|
env: "CORE_BRANCH=stable20"
|
|
- php: nightly
|
|
env: "PATCH_VERSION_CHECK=TRUE"
|
|
fast_finish: true
|
|
allow_failures:
|
|
- php: nightly
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
- "/^stable\\d+(\\.\\d+)?$/"
|
|
- /^v\d++(\.\d+)?+(\.\d+)?+(\.\d+)?$/
|
|
|
|
cache:
|
|
directories:
|
|
- "$HOME/.composer/cache/files"
|
|
- "$HOME/.npm"
|
|
|
|
before_install:
|
|
- php --info
|
|
|
|
# XDebug is only needed if we report coverage -> speeds up other builds (7.3 has no xdebug yet)
|
|
- if [[ "$PHP_COVERAGE" = "FALSE" ]]; then phpenv config-rm xdebug.ini || true; fi
|
|
|
|
# Use latest node for js tests
|
|
- if [[ "$TEST_JS" = "TRUE" ]]; then nvm install node; fi
|
|
|
|
# Set up DB
|
|
- if [[ "$DB" == 'pgsql' ]]; then createuser -U travis -s nc_autotest; fi
|
|
- if [[ "$DB" == 'mysql' ]]; then mysql -u root -e 'create database nc_autotest;'; fi
|
|
- if [[ "$DB" == 'mysql' ]]; then mysql -u root -e "CREATE USER 'nc_autotest'@'localhost' IDENTIFIED BY '';"; fi
|
|
- if [[ "$DB" == 'mysql' ]]; then mysql -u root -e "GRANT ALL ON nc_autotest.* TO 'nc_autotest'@'localhost';"; fi
|
|
|
|
- composer self-update
|
|
- composer install
|
|
- npm install
|
|
|
|
# Set up Apache + php-fpm for acceptance tests
|
|
- if [[ "$SAUCE" = "TRUE" ]]; then ./ci/setup_apache_travis.sh; fi
|
|
|
|
- cd ..
|
|
- git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b $CORE_BRANCH core
|
|
- if [[ "$PATCH_VERSION_CHECK" = "TRUE" ]]; then echo "<?php" > core/lib/versioncheck.php; fi
|
|
- if [[ "$PATCH_VERSION_CHECK" = "TRUE" ]]; then sed -ri 's/(<php min\-version="[0-9\.]+") max\-version="[0-9\.]+"/\1/g' twofactor_totp/appinfo/info.xml; fi
|
|
- mv twofactor_totp core/apps/
|
|
|
|
before_script:
|
|
# Set up core
|
|
- php -f core/occ maintenance:install --database-name nc_autotest --database-user nc_autotest --admin-user admin --admin-pass admin --database $DB --database-pass=''
|
|
|
|
# Enable debug mode to get more info in case a test fails
|
|
- php -f core/occ config:system:set debug --value=true --type boolean
|
|
|
|
# Set up app
|
|
- php -f core/occ app:enable twofactor_totp
|
|
- cd core/apps/twofactor_totp
|
|
|
|
script:
|
|
# Check info.xml schema validity
|
|
- wget https://apps.nextcloud.com/schema/apps/info.xsd
|
|
- xmllint appinfo/info.xml --schema info.xsd --noout
|
|
- rm info.xsd
|
|
|
|
# Build js bundle
|
|
- npm run build
|
|
|
|
# Run js tests
|
|
- if [[ "$TEST_JS" = "TRUE" ]]; then npm run test; fi
|
|
|
|
# Run php unit tests
|
|
- if [[ "$SAUCE" = "FALSE" ]]; then ./vendor/bin/phpunit --fail-on-warning --configuration tests/phpunit.xml --group default; fi
|
|
- if [[ "$SAUCE" = "TRUE" ]]; then ./vendor/bin/phpunit --fail-on-warning --configuration tests/phpunit.xml --group Acceptance --no-coverage; fi
|
|
- if [[ "$PHP_COVERAGE" = "TRUE" ]]; then wget https://scrutinizer-ci.com/ocular.phar; fi
|
|
- if [[ "$PHP_COVERAGE" = "TRUE" ]]; then php ocular.phar code-coverage:upload --format=php-clover tests/clover.xml; fi
|