diff --git a/makefiles/buildtests.inc.mk b/makefiles/buildtests.inc.mk
index e67f9f4982098093d3c02d2db2abff912b616dc1..3d560590af30c53c0585dc69751d2aebe52e5f43 100644
--- a/makefiles/buildtests.inc.mk
+++ b/makefiles/buildtests.inc.mk
@@ -9,17 +9,19 @@ buildtest:
 	@ \
 	RESULT=true ; \
 	for board in $(BOARDS); do \
-		$(COLOR_ECHO) -n "Building for $$board ... " ; \
-		BOARD=$${board} RIOT_CI_BUILD=1 RIOT_VERSION_OVERRIDE=buildtest \
-			$(MAKE) clean all -j $(NPROC) $(BUILDTEST_MAKE_REDIRECT); \
-		RES=$$? ; \
-		if [ $$RES -eq 0 ]; then \
-			$(COLOR_ECHO) "$(COLOR_GREEN)success.$(COLOR_RESET)" ; \
-		else \
-			$(COLOR_ECHO) "$(COLOR_RED)failed!$(COLOR_RESET)" ; \
-			RESULT=false ; \
-		fi ; \
-		$(MAKE) clean-intermediates >/dev/null 2>&1 || true; \
+		if BOARD=$${board} $(MAKE) check-toolchain-supported > /dev/null 2>&1; then \
+			$(COLOR_ECHO) -n "Building for $$board ... " ; \
+			BOARD=$${board} RIOT_CI_BUILD=1 RIOT_VERSION_OVERRIDE=buildtest \
+				$(MAKE) clean all -j $(NPROC) $(BUILDTEST_MAKE_REDIRECT); \
+			RES=$$? ; \
+			if [ $$RES -eq 0 ]; then \
+				$(COLOR_ECHO) "$(COLOR_GREEN)success.$(COLOR_RESET)" ; \
+			else \
+				$(COLOR_ECHO) "$(COLOR_RED)failed!$(COLOR_RESET)" ; \
+				RESULT=false ; \
+			fi ; \
+			$(MAKE) clean-intermediates >/dev/null 2>&1 || true; \
+		fi; \
 	done ; \
 	$${RESULT}
 endif # BUILD_IN_DOCKER