ahoyapi: v2 commands: phpcpd: cmd: ahoy d4d exec vendor/bin/phpcpd "$@" usage: PHP Copy and Paste Detector phpcs: cmd: | ahoy d4d exec mkdir -p /tmp/logs ahoy d4d exec vendor/bin/phpcs --report-full=/tmp/logs/codesniffer_results.txt --report-checkstyle=/tmp/logs/checkstyle.xml --report-diff=/tmp/logs/codesniffer_fixes.patch --standard=Drupal --file-list=/var/www/html/tests/phpcs.files --extensions=php,module,inc,install,test,profile,theme,info,txt,md --ignore=node_modules,*.min.css,*.min.js,$(paste -s -d, .phpcsignore 2>/dev/null) "$@" ahoy d4d exec cat /tmp/logs/codesniffer_results.txt usage: PHP coding standards phpcsmodule: cmd: | module=$1 shift ahoy d4d exec mkdir -p /tmp/logs ahoy d4d exec vendor/bin/phpcs --report-full=/tmp/logs/codesniffer_results.txt --report-checkstyle=/tmp/logs/checkstyle.xml --report-diff=/tmp/logs/codesniffer_fixes.patch --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,info,txt,md --ignore=node_modules,*.min.css,*.min.js,$(paste -s -d, .phpcsignore 2>/dev/null) web/modules/contrib/$module "$@" ahoy d4d exec cat /tmp/logs/codesniffer_results.txt usage: PHP coding standards phpcs-fix: cmd: ahoy d4d exec patch -p0 -ui /tmp/logs/codesniffer_fixes.patch usage: Apply fixes from previous PHP coding standards run phploc: cmd: ahoy d4d exec vendor/bin/phploc "$@" usage: PHP LOC analysis phpmd: cmd: ahoy d4d exec vendor/bin/phpmd "$@" usage: PHP Mess Detector phpunit: cmd: ahoy d4d exec vendor/bin/phpunit --configuration /var/www/html/tests/phpunit.xml.dist "$@" usage: PHP unit tests phpunitgroup: cmd: | group=$1 shift ahoy d4d exec vendor/bin/phpunit --configuration /var/www/html/tests/phpunit.xml.dist --group="$group" $@ usage: PHP unit tests by group phpunitmodule: cmd: | module=$1 shift mkdir -p tests/junit ahoy d4d exec vendor/bin/phpunit --log-junit tests/junit/${module}.xml --configuration /var/www/html/tests/phpunit.xml.dist web/modules/contrib/$module $@ usage: PHP unit tests by module phpunit:list:suites: cmd: ahoy d4d exec vendor/bin/phpunit --configuration /var/www/html/tests/phpunit.xml.dist --list-suites "$@" usage: List available test suites of PHP unit tests phpunit:list:groups: cmd: ahoy d4d exec vendor/bin/phpunit --configuration /var/www/html/tests/phpunit.xml.dist --list-groups "$@" usage: List available test groups of PHP unit tests phpstan: cmd: | module=$1 shift config=/var/www/html/vendor/lakedrops/drupal-development-environment/defaults/phpstan.neon if [[ -f /var/www/html/$module/phpstan.neon ]]; then config=/var/www/html/$module/phpstan.neon; fi ahoy d4d exec vendor/bin/phpstan analyze --configuration=$config $module $@ usage: PHPStan tests phpstanmodule: cmd: | module=$1 shift config=/var/www/html/vendor/lakedrops/drupal-development-environment/defaults/phpstan.neon if [[ -f web/modules/contrib/$module/phpstan.neon ]]; then config=/var/www/html/web/modules/contrib/$module/phpstan.neon; fi ahoy d4d exec vendor/bin/phpstan analyze --configuration=$config web/modules/contrib/$module $@ usage: PHPStan tests by module phplintmodule: cmd: | module=$1 shift ahoy d4d exec vendor/bin/parallel-lint web/modules/contrib/$module $@ usage: PHP lint tests by module phpmetricsmodule: cmd: | module=$1 shift mkdir -p tests/metrics/$module JUNIT= if [[ -f tests/junit/${module}.xml ]]; then JUNIT=--junit=tests/junit/${module}.xml; fi ahoy d4d exec vendor/bin/phpmetrics --report-html=tests/metrics/$module $JUNIT web/modules/contrib/$module $@ usage: PHP Metrics by module preparecorefordev: cmd: | /usr/local/bin/node_cmd yarn --cwd web/core add stylelint-junit-formatter $@ usage: Prepare environment for other tests like style linter and cspell stylelintmodule: cmd: | module=$1 shift /usr/local/bin/node_cmd yarn --silent --cwd web/core stylelint --formatter verbose --config ./.stylelintrc.json "../modules/contrib/${module}/**/*.css" --color $@ usage: Stylelint tests by module eslintmodule: cmd: | module=$1 shift cd web/modules/contrib/$module test -e .prettierrc.json || ln -s /drupal/web/core/.prettierrc.json . test -e .prettierignore || echo '*.yml' > .prettierignore /drupal/web/core/node_modules/.bin/eslint --no-error-on-unmatched-pattern --ignore-pattern="*.es6.js" --resolve-plugins-relative-to=/drupal/web/core --ext=.js,.yml . $@ usage: Eslint tests by module outdated: cmd: | echo "Testing for outdated patch versions ..." composer outdated --patch-only --strict --no-interaction echo "Testing for outdated minor versions ..." composer outdated --minor-only --strict --no-interaction usage: Verifies that a dependencies are using the latest minor and patch versions cspellmodule: cmd: | export CI_PROJECT_NAME=$1 shift while read assign; do export "$assign"; done < <(sed -nr '/variables:/,$ s/ ([A-Z_]+): (.*)/\1=\2/ p' /drupal/web/modules/contrib/$CI_PROJECT_NAME/.gitlab-ci.yml) export _WEB_ROOT=/drupal/web export _CURL_TEMPLATES_REPO=project/gitlab_templates export _CURL_TEMPLATES_REF=default-ref cd /drupal/web/modules/contrib/$CI_PROJECT_NAME curl -sOL https://git.drupalcode.org/$_CURL_TEMPLATES_REPO/-/raw/$_CURL_TEMPLATES_REF/scripts/prepare-cspell.php if [ ! -f .cspell.json ]; then curl -sOL https://git.drupalcode.org/$_CURL_TEMPLATES_REPO/-/raw/$_CURL_TEMPLATES_REF/assets/.cspell.json fi php prepare-cspell.php rm prepare-cspell.php touch .cspell-project-words.txt /drupal/web/core/node_modules/.bin/cspell -c .cspell.json --show-suggestions --show-context --no-progress $_CSPELL_EXTRA ** || EXIT_CODE=$? if [ "$EXIT_CODE" != "" ]; then /drupal/web/core/node_modules/.bin/cspell -c .cspell.json --words-only --unique --no-progress $_CSPELL_EXTRA ** | sort -f fi rm .cspell.json