friendica-github/.woodpecker/.phpunit.yml

115 lines
3.3 KiB
YAML
Raw Normal View History

# SPDX-FileCopyrightText: 2010 - 2024 the Friendica project
#
# SPDX-License-Identifier: CC0-1.0
matrix:
include:
- PHP_MAJOR_VERSION: 7.4
2022-11-09 21:50:55 +00:00
PHP_VERSION: 7.4.33
- PHP_MAJOR_VERSION: 8.0
2023-10-12 19:33:03 +00:00
PHP_VERSION: 8.0.30
2022-12-04 13:53:14 +00:00
- PHP_MAJOR_VERSION: 8.1
2024-03-15 22:03:44 +00:00
PHP_VERSION: 8.1.27
- PHP_MAJOR_VERSION: 8.2
2024-03-15 22:03:44 +00:00
PHP_VERSION: 8.2.16
2024-03-15 21:55:48 +00:00
- 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:
2023-07-28 17:02:08 +00:00
- 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:
2024-11-28 12:56:04 +00:00
- git clone 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
2024-03-15 22:06:13 +00:00
- 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:
2023-04-01 19:52:02 +00:00
image: friendicaci/codecov
when:
matrix:
2024-03-15 22:06:13 +00:00
PHP_MAJOR_VERSION: 8.2
PHP_VERSION: 8.2.16
repo:
- friendica/friendica
2023-04-01 19:52:02 +00:00
commands:
2023-04-01 20:00:57 +00:00
- codecov -R '.' -Z -f 'clover.xml'
2023-04-01 19:52:02 +00:00
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