mirror of
https://github.com/friendica/friendica
synced 2024-12-22 16:40:16 +00:00
114 lines
3.3 KiB
YAML
114 lines
3.3 KiB
YAML
# SPDX-FileCopyrightText: 2010 - 2024 the Friendica project
|
|
#
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
matrix:
|
|
include:
|
|
- PHP_MAJOR_VERSION: 7.4
|
|
PHP_VERSION: 7.4.33
|
|
- PHP_MAJOR_VERSION: 8.0
|
|
PHP_VERSION: 8.0.30
|
|
- PHP_MAJOR_VERSION: 8.1
|
|
PHP_VERSION: 8.1.27
|
|
- PHP_MAJOR_VERSION: 8.2
|
|
PHP_VERSION: 8.2.16
|
|
- PHP_MAJOR_VERSION: 8.3
|
|
PHP_VERSION: 8.3.3
|
|
|
|
# This forces PHP Unit executions at the "opensocial" labeled location (because of much more power...)
|
|
labels:
|
|
location: opensocial
|
|
|
|
steps:
|
|
php-lint:
|
|
image: php:${PHP_MAJOR_VERSION}
|
|
commands:
|
|
- find . -name \*.php -not -path './vendor/*' -not -path './view/asset/*' -print0 | xargs -0 -n1 php -l
|
|
restore_cache:
|
|
image: meltwater/drone-cache:dev
|
|
settings:
|
|
backend: "filesystem"
|
|
restore: true
|
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
|
archive_format: "gzip"
|
|
mount:
|
|
- '.composer'
|
|
volumes:
|
|
- /tmp/drone-cache:/tmp/cache
|
|
composer_install:
|
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
|
commands:
|
|
- git clone -b develop --single-branch https://git.friendi.ca/friendica/friendica-addons.git addon
|
|
- export COMPOSER_HOME=.composer
|
|
- ./bin/composer.phar validate
|
|
- ./bin/composer.phar install --prefer-dist
|
|
volumes:
|
|
- /etc/hosts:/etc/hosts
|
|
rebuild_cache:
|
|
image: meltwater/drone-cache:dev
|
|
settings:
|
|
backend: "filesystem"
|
|
rebuild: true
|
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
|
archive_format: "gzip"
|
|
mount:
|
|
- '.composer'
|
|
volumes:
|
|
- /tmp/drone-cache:/tmp/cache
|
|
phpstan:
|
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
|
when:
|
|
matrix:
|
|
PHP_MAJOR_VERSION: 8.2
|
|
commands:
|
|
- bin/composer.phar run phpstan;
|
|
test:
|
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
|
environment:
|
|
MYSQL_HOST: "mariadb"
|
|
MYSQL_PORT: "3306"
|
|
MYSQL_DATABASE: "test"
|
|
MYSQL_PASSWORD: "test"
|
|
MYSQL_USER: "test"
|
|
REDIS_HOST: "redis"
|
|
MEMCACHED_HOST: "memcached"
|
|
MEMCACHE_HOST: "memcached"
|
|
commands:
|
|
- cp config/local-sample.config.php config/local.config.php
|
|
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
|
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
|
- if [ "${PHP_MAJOR_VERSION}" = "8.2" -a "${CI_REPO}" = "friendica/friendica" ]; then
|
|
phpenmod xdebug;
|
|
export XDEBUG_MODE=coverage;
|
|
phpunit --configuration tests/phpunit.xml -d memory_limit=-1 --coverage-clover clover.xml;
|
|
else
|
|
phpunit --configuration tests/phpunit.xml -d memory_limit=-1;
|
|
fi
|
|
codecov:
|
|
image: friendicaci/codecov
|
|
when:
|
|
matrix:
|
|
PHP_MAJOR_VERSION: 8.2
|
|
PHP_VERSION: 8.2.16
|
|
repo:
|
|
- friendica/friendica
|
|
commands:
|
|
- codecov -R '.' -Z -f 'clover.xml'
|
|
secrets:
|
|
- source: codecov-token
|
|
target: codecov_token
|
|
|
|
services:
|
|
mariadb:
|
|
image: mariadb:latest
|
|
environment:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
|
MYSQL_DATABASE: "test"
|
|
MYSQL_PASSWORD: "test"
|
|
MYSQL_USER: "test"
|
|
|
|
memcached:
|
|
image: memcached
|
|
|
|
redis:
|
|
image: redis
|