diff --git a/Build/Scripts/runTests.sh b/Build/Scripts/runTests.sh index 99b6a605..5a6f7401 100755 --- a/Build/Scripts/runTests.sh +++ b/Build/Scripts/runTests.sh @@ -154,6 +154,7 @@ Options: - composerUpdateMax: "composer update", with no platform.php config. - composerUpdateMin: "composer update --prefer-lowest", with platform.php set to PHP version x.x.0. - docsGenerate: Renders the extension ReST documentation. + - fix: Runs all automatic code style fixes. - functional: PHP functional tests - lintCss: CSS file linting. Set -n for dry-run. - lintJs: JavaScript file linting. Set -n for dry-run. @@ -540,6 +541,15 @@ case ${TEST_SUITE} in ${CONTAINER_BIN} run ${CONTAINER_INTERACTIVE} --rm --pull always ${USERSET} -v "${ROOT_DIR}":/project ${IMAGE_DOCS} --config=Documentation --fail-on-log SUITE_EXIT_CODE=$? ;; + fix) + COMMAND="composer fix" + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name composer-command-${SUFFIX} -e COMPOSER_CACHE_DIR=.cache/composer -e COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION} ${IMAGE_PHP} /bin/sh -c "${COMMAND}" + COMMAND="echo ${HELP_TEXT_NPM_CI}; npm ci --silent || { echo ${HELP_TEXT_NPM_FAILURE}; exit 1; } && npm run fix:lint:js" + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name npm-command-${SUFFIX} ${IMAGE_NODE} /bin/sh -c "${COMMAND}" + COMMAND="echo ${HELP_TEXT_NPM_CI}; npm ci --silent || { echo ${HELP_TEXT_NPM_FAILURE}; exit 1; } && npm run fix:lint:css" + ${CONTAINER_BIN} run ${CONTAINER_COMMON_PARAMS} --name npm-command-${SUFFIX} ${IMAGE_NODE} /bin/sh -c "${COMMAND}" + SUITE_EXIT_CODE=$? + ;; shellcheck) ${CONTAINER_BIN} run ${CONTAINER_INTERACTIVE} --rm --pull always ${USERSET} -v "${ROOT_DIR}":/project:ro -e SHELLCHECK_OPTS="-e SC2086" ${IMAGE_SHELLCHECK} /project/Build/Scripts/runTests.sh SUITE_EXIT_CODE=$? diff --git a/Documentation/Running.rst b/Documentation/Running.rst index 718ec010..b3e96c90 100644 --- a/Documentation/Running.rst +++ b/Documentation/Running.rst @@ -106,6 +106,13 @@ Lints the TypoScript files. Lints the YAML files. +.. index:: Commands; composer fix +.. code-block:: bash + + composer fix + +Runs all fixers (except for the ones that need JavaScript). + .. index:: Commands; composer fix:php .. code-block:: bash diff --git a/composer.json b/composer.json index 45029046..30ec722b 100644 --- a/composer.json +++ b/composer.json @@ -172,6 +172,10 @@ "ci:yaml:lint": "find . ! -path '*.Build/*' ! -path '*node_modules/*' \\( -name '*.yaml' -o -name '*.yml' \\) | xargs -r php ./.Build/bin/yaml-lint", "coverage:create-directories": "mkdir -p build/coverage build/logs", "docs:generate": "docker run --rm --pull always -v $(pwd):/project -it ghcr.io/typo3-documentation/render-guides:latest --config=Documentation", + "fix": [ + "@fix:composer:normalize", + "@fix:php" + ], "fix:composer:normalize": "@composer normalize --no-check-lock", "fix:php": [ "@fix:php:cs", @@ -229,6 +233,7 @@ "ci:yaml:lint": "Lints the YAML files.", "coverage:create-directories": "Creates the directories needed for recording and merging the code coverage reports.", "docs:generate": "Renders the extension ReST documentation.", + "fix": "Runs all automatic code style fixes.", "fix:composer:normalize": "Normalizes composer.json file content.", "fix:php": "Runs all fixers for the PHP code.", "fix:php:cs": "Fixes the code style with PHP-CS-Fixer.",