diff --git a/.ci/ruff.sh b/.ci/ruff.sh
index 05d5289d03b0862b13eca85471e6d6125d13249e..e77864d8aaee14ef4551466b06ad464250b4b57b 100755
--- a/.ci/ruff.sh
+++ b/.ci/ruff.sh
@@ -8,15 +8,19 @@ if [ "$(id -u)" = 0 ]; then
 	exec su "${TESTUSER:-build}" -c "sh -e $0"
 fi
 
+DID_FAIL=0
+
 set -x
 
 # __init__.py with additional ignore:
 # F401: imported, but not used
 # shellcheck disable=SC2046
-ruff check --ignore "F401" $(find . -not -path '*/venv/*' -name '__init__.py')
+ruff check --ignore "F401" $(find . -not -path '*/venv/*' -name '__init__.py') || DID_FAIL=1
 
 # Check all other files
-ruff check --exclude=__init__.py .
+ruff check --exclude=__init__.py . || DID_FAIL=1
 
 # Check formatting
-ruff format --diff
+ruff format --diff || DID_FAIL=1
+
+exit $DID_FAIL