X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=.drone.yml;h=b45409a846ef111c9abccf8be9d83705979b347d;hb=8b6ace6629ab4fe229c4c35ff388efe320602a16;hp=5ad22fa420ba90b22eeadf77f0ef549131e019d7;hpb=e3e3c1ef28932bc6862b98bbd3a19435f3213b2e;p=friendica.git diff --git a/.drone.yml b/.drone.yml index 5ad22fa420..b45409a846 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,176 +1,327 @@ kind: pipeline -name: mysql-php7.1 +type: docker +name: Check messages.po steps: -- name: mysql-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: - - NOCOVERAGE=true ./autotest.sh - environment: - MYSQL_USERNAME: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mysql + - name: Run default Xgettext + image: friendicaci/transifex + commands: + - ./bin/run_xgettext.sh -services: -- name: mysql - image: mysql:8.0 - command: [ "--default-authentication-plugin=mysql_native_password" ] - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - tmpfs: - - /var/lib/mysql - -#trigger: -# branch: -# - master -# - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: Check default + image: friendicaci/transifex + commands: + - /check-messages.sh --- kind: pipeline -name: mysql-php7.2 +type: docker +name: php7.3-lint steps: - - name: mysql-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true ./autotest.sh - environment: - MYSQL_USERNAME: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mysql + - name: Test + image: php:7.3 + commands: + - ./bin/composer.phar run lint +--- +kind: pipeline +type: docker +name: php7.4-lint -services: - - name: mysql - image: mysql:8.0 - command: [ "--default-authentication-plugin=mysql_native_password" ] - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - tmpfs: - - /var/lib/mysql - -#trigger: -# branch: -# - master -# - develop -# - "*-rc" -# event: -# - pull_request -# - push +steps: + - name: Test + image: php:7.4 + commands: + - ./bin/composer.phar run lint --- kind: pipeline -name: mysql-php7.3 +type: docker +name: php8.0-lint steps: - - name: mysql-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true ./autotest.sh - environment: - MYSQL_USERNAME: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mysql + - name: Test + image: php:8.0 + commands: + - ./bin/composer.phar run lint +--- +kind: pipeline +type: docker +name: php-cs check -services: - - name: mysql - image: mysql:8.0 - command: [ "--default-authentication-plugin=mysql_native_password" ] - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - tmpfs: - - /var/lib/mysql - -#trigger: -# branch: -# - master -# - develop -# - "*-rc" -# event: -# - pull_request -# - push +trigger: + event: + - pull_request + +steps: + - name: Restore cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + restore: true + cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Install dependencies + image: composer + commands: + - export COMPOSER_HOME=.composer + - ./bin/composer.phar run cs:install + - name: Rebuild cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + rebuild: true + cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Run coding standards check + image: friendicaci/php-cs + commands: + - export CHANGED_FILES="$(git diff --name-status ${DRONE_COMMIT_BEFORE}..${DRONE_COMMIT_AFTER} | grep ^A | cut -f2)" + - /check-php-cs.sh + +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: redis-php7.1 +type: docker +name: php7.3-mariadb steps: - - name: redis-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh - environment: - REDIS_HOST: redis + - name: Restore cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + restore: true + cache_key: '{{ .Repo.Name }}_php73_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Composer install + image: friendicaci/php7.3:php7.3.28 + commands: + - export COMPOSER_HOME=.composer + - ./bin/composer.phar validate + - ./bin/composer.phar install --prefer-dist + - name: Rebuild cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + rebuild: true + cache_key: '{{ .Repo.Name }}_php73_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Test Friendica + image: friendicaci/php7.3:php7.3.28 + 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 + - phpunit --configuration tests/phpunit.xml services: - - name: redis - image: redis - -#trigger: -# branch: -# - master -# - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: mariadb + image: mariadb:latest + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + MYSQL_DATABASE: "test" + MYSQL_PASSWORD: "test" + MYSQL_USER: "test" + tmpfs: + - /var/lib/mysql + + - name: memcached + image: memcached + + - name: redis + image: redis + +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: redis-php7.2 +type: docker +name: php7.4-mariadb steps: - - name: redis-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh - environment: - REDIS_HOST: redis + - name: Restore cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + restore: true + cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Composer install + image: friendicaci/php7.4:php7.4.18 + commands: + - export COMPOSER_HOME=.composer + - ./bin/composer.phar validate + - ./bin/composer.phar install --prefer-dist + - name: Rebuild cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + rebuild: true + cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Test Friendica + image: friendicaci/php7.4:php7.4.18 + 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" + XDEBUG_MODE: "coverage" + commands: + - phpenmod xdebug + - 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 + - phpunit --configuration tests/phpunit.xml --coverage-clover clover.xml + - name: Codecov + image: plugins/codecov + when: + repo: + - friendica/friendica + settings: + token: + from_secret: codecov-token + files: + - clover.xml services: - - name: redis - image: redis - -#trigger: -# branch: -# - master -# - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: mariadb + image: mariadb:latest + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + MYSQL_DATABASE: "test" + MYSQL_PASSWORD: "test" + MYSQL_USER: "test" + tmpfs: + - /var/lib/mysql + + - name: memcached + image: memcached + + - name: redis + image: redis + +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: redis-php7.3 +type: docker +name: php8.0-mariadb steps: - - name: redis-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh - environment: - REDIS_HOST: redis + - name: Restore cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + restore: true + cache_key: '{{ .Repo.Name }}_php80_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Composer install + image: friendicaci/php8.0:php8.0.5 + commands: + - export COMPOSER_HOME=.composer + - ./bin/composer.phar validate + - ./bin/composer.phar install --prefer-dist + - name: Rebuild cache + image: meltwater/drone-cache:dev + settings: + backend: "filesystem" + rebuild: true + cache_key: '{{ .Repo.Name }}_php80_{{ arch }}_{{ os }}' + archive_format: "gzip" + mount: + - '.composer' + volumes: + - name: cache + path: /tmp/cache + - name: Test Friendica + image: friendicaci/php8.0:php8.0.5 + 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 + - phpunit --configuration tests/phpunit.xml services: - - name: redis - image: redis - -#trigger: -# branch: -# - master -# - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: mariadb + image: mariadb:latest + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + MYSQL_DATABASE: "test" + MYSQL_PASSWORD: "test" + MYSQL_USER: "test" + tmpfs: + - /var/lib/mysql + + - name: memcached + image: memcached + + - name: redis + image: redis + +volumes: + - name: cache + host: + path: /tmp/drone-cache