Browse Source

Chore: breaks build if certain FrontEnd limits are exceeded (#16301)

Build: breaks build if certain FrontEnd limits are exceeded
Hugo Häggmark 6 years ago
parent
commit
8368576249
2 changed files with 27 additions and 8 deletions
  1. 25 7
      scripts/ci-frontend-metrics.sh
  2. 2 1
      scripts/circle-test-frontend.sh

+ 25 - 7
scripts/ci-frontend-metrics.sh

@@ -2,18 +2,36 @@
 
 echo -e "Collecting code stats (typescript errors & more)"
 
+ERROR_COUNT_LIMIT=6927
+DIRECTIVES_LIMIT=173
+CONTROLLERS_LIMIT=136
+
 ERROR_COUNT="$(./node_modules/.bin/tsc --project tsconfig.json --noEmit --noImplicitAny true | grep -oP 'Found \K(\d+)')"
 DIRECTIVES="$(grep -r -o  directive public/app/**/*  | wc -l)"
 CONTROLLERS="$(grep -r -oP 'class .*Ctrl' public/app/**/*  | wc -l)"
 
-echo -e "Typescript errors: $ERROR_COUNT"
-echo -e "Directives: $DIRECTIVES"
-echo -e "Controllers: $CONTROLLERS"
+if [ $ERROR_COUNT -gt $ERROR_COUNT_LIMIT ]; then
+  echo -e "Typescript errors $ERROR_COUNT exceeded $ERROR_COUNT_LIMIT so failing build"
+	exit -1
+fi
 
-./scripts/ci-metrics-publisher.sh \
-  grafana.ci-code.noImplicitAny=$ERROR_COUNT \
-  grafana.ci-code.directives=$DIRECTIVES \
-  grafana.ci-code.controllers=$CONTROLLERS \
+if [ $DIRECTIVES -gt $DIRECTIVES_LIMIT ]; then
+  echo -e "Directive count $ERROR_COUNT exceeded $DIRECTIVES_LIMIT so failing build"
+	exit -1
+fi
 
+if [ $CONTROLLERS -gt $CONTROLLERS_LIMIT ]; then
+  echo -e "Controllers count $CONTROLLERS exceeded $CONTROLLERS_LIMIT so failing build"
+	exit -1
+fi
 
+echo -e "Typescript errors: $ERROR_COUNT"
+echo -e "Directives: $DIRECTIVES"
+echo -e "Controllers: $CONTROLLERS"
 
+if [ "${CIRCLE_BRANCH}" == "master" ]; then
+  ./scripts/ci-metrics-publisher.sh \
+    grafana.ci-code.noImplicitAny=$ERROR_COUNT \
+    grafana.ci-code.directives=$DIRECTIVES \
+    grafana.ci-code.controllers=$CONTROLLERS
+fi

+ 2 - 1
scripts/circle-test-frontend.sh

@@ -19,8 +19,9 @@ exit_if_fail npm run test
 end=$(date +%s)
 seconds=$((end - start))
 
+exit_if_fail ./scripts/ci-frontend-metrics.sh
+
 if [ "${CIRCLE_BRANCH}" == "master" ]; then
-	exit_if_fail ./scripts/ci-frontend-metrics.sh
 	exit_if_fail ./scripts/ci-metrics-publisher.sh grafana.ci-performance.frontend-tests=$seconds
 fi