forked from agtrlabs/sozzle
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlintool.sh
More file actions
executable file
·35 lines (26 loc) · 972 Bytes
/
lintool.sh
File metadata and controls
executable file
·35 lines (26 loc) · 972 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
#minimum code coverage value
coverage_limit=70
exit_message () {
echo -e "\e[1;31m 😅 Lintool failed.\n 🪛 Check the issues.\n 🐝 Run again.\e[0m"
exit 0
}
dart format --set-exit-if-changed lib test || exit_message
# shellcheck disable=SC2015
flutter analyze lib test || (dart fix --apply && flutter analyze lib test || exit_message)
flutter test -j 4 --no-pub --coverage --test-randomize-ordering-seed random || exit_message
coverage_output=$(genhtml coverage/lcov.info -o coverage/) # | grep -Eoh '[0-9]+.[0-9]+%')
regex="([0-9]+)\.[0-9]*%"
if [[ $coverage_output =~ $regex ]]
then
coverage_value="${BASH_REMATCH[1]}"
echo "Code Coverage is $coverage_value%"
if [ $coverage_value -lt $coverage_limit ]
then
echo "Code Coverage must be at least $coverage_limit%"
exit_message
fi
else
echo "😅 Can't detect Code Coverage Value. Check it yourself."
fi
echo -e "\e[1;32m Ready to push!\e[0m 🚀"