dist: bionic language: php branches: only: - /.*/ services: - docker cache: directories: - $HOME/.composer/cache/files jobs: fast_finish: true allow_failures: - php: '8.0' include: - name: 'CI - 8.0' php: '8.0' env: - COMPOSER_FLAGS='--ignore-platform-req=php' - name: 'CI - 7.4' php: '7.4' env: - COMPOSER_FLAGS='' before_install: - echo 'extension = apcu.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - phpenv config-rm xdebug.ini || return 0 - sudo ./data/infra/ci/install-ms-odbc.sh - docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_ms shlink_db shlink_db_postgres shlink_db_maria - yes | pecl install pdo_sqlsrv-5.9.0preview1 swoole-4.5.5 pcov install: - composer self-update - composer install --no-interaction --prefer-dist $COMPOSER_FLAGS before_script: - docker-compose exec shlink_db_ms /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Passw0rd!' -Q "CREATE DATABASE shlink_test;" - mkdir build - export DOCKERFILE_CHANGED=$(git diff ${TRAVIS_COMMIT_RANGE:-origin/main} --name-only | grep Dockerfile) script: - composer ci - bin/test/run-api-tests.sh - if [[ ! -z "${DOCKERFILE_CHANGED}" && "${TRAVIS_PHP_VERSION}" == "7.4" ]]; then docker build -t shlink-docker-image:temp . ; fi after_success: - rm -f build/clover.xml - wget https://phar.phpunit.de/phpcov-7.0.2.phar - php phpcov-7.0.2.phar merge build --clover build/clover.xml - wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover build/clover.xml