diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9441451..41007fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -313,6 +313,16 @@ jobs: - typo3-version: "^12.4" php-version: "8.3" composer-dependencies: highest + shellcheck: + name: Check shell scripts + runs-on: ubuntu-24.04 + timeout-minutes: 2 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Check scripts + run: | + Build/Scripts/runTests.sh -s shellcheck documentation: name: Documentation runs-on: ubuntu-24.04 diff --git a/Build/Scripts/runTests.sh b/Build/Scripts/runTests.sh index 4a3868b..032e207 100755 --- a/Build/Scripts/runTests.sh +++ b/Build/Scripts/runTests.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # -# TYPO3 core test runner based on docker. +# TYPO3 extension tea test runner based on docker. # trap 'cleanUp;exit 2' SIGINT @@ -162,6 +162,7 @@ Options: - lintYaml: YAML linting - phpstan: phpstan tests - phpstanGenerateBaseline: regenerate phpstan baseline, handy after phpstan updates + - shellcheck: check runTests.sh for shell issues - unit (default): PHP unit tests - unitRandom: PHP unit tests in random order, add -o to use specific seed @@ -446,6 +447,7 @@ mkdir -p .Build/public/typo3temp/var/tests IMAGE_PHP="ghcr.io/typo3/core-testing-$(echo "php${PHP_VERSION}" | sed -e 's/\.//'):latest" IMAGE_NODE="docker.io/node:${NODE_VERSION}-alpine" IMAGE_ALPINE="docker.io/alpine:3.8" +IMAGE_SHELLCHECK="docker.io/koalaman/shellcheck:v0.10.0" IMAGE_DOCS="ghcr.io/typo3-documentation/render-guides:latest" IMAGE_MARIADB="docker.io/mariadb:${DBMS_VERSION}" IMAGE_MYSQL="docker.io/mysql:${DBMS_VERSION}" @@ -539,6 +541,10 @@ 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=$? ;; + 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=$? + ;; functional) [ -z "${TEST_FILE}" ] && TEST_FILE="Tests/Functional" COMMAND=".Build/bin/phpunit -c Build/phpunit/FunctionalTests.xml --exclude-group not-${DBMS} ${EXTRA_TEST_OPTIONS} ${TEST_FILE}"