| 
									
										
										
										
											2019-03-13 17:10:26 +08:00
										 |  |  | #!/bin/bash
 | 
					
						
							| 
									
										
										
										
											2020-09-08 00:39:47 +08:00
										 |  |  | set -e | 
					
						
							| 
									
										
										
										
											2019-03-13 17:10:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-11 20:41:15 +08:00
										 |  |  | ERROR_COUNT="0" | 
					
						
							| 
									
										
										
										
											2021-08-23 16:08:01 +08:00
										 |  |  | ACCESSIBILITY_ERRORS="$(grep -oP '\"errors\":(\d+),' pa11y-ci-results.json | grep -oP '\d+')" | 
					
						
							| 
									
										
										
										
											2020-09-07 19:17:03 +08:00
										 |  |  | DIRECTIVES="$(grep -r -o  directive public/app/ | wc -l)" | 
					
						
							|  |  |  | CONTROLLERS="$(grep -r -oP 'class .*Ctrl' public/app/ | wc -l)" | 
					
						
							|  |  |  | LEGACY_FORMS="$(grep -r -oP 'LegacyForms;' public/app | wc -l)" | 
					
						
							| 
									
										
										
										
											2022-04-04 18:43:23 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-29 15:29:26 +08:00
										 |  |  | TOTAL_BUNDLE="$(du -sk ./public/build | cut -f1)" | 
					
						
							| 
									
										
										
										
											2021-10-18 20:17:02 +08:00
										 |  |  | OUTDATED_DEPENDENCIES="$(yarn outdated --all | grep -oP '[[:digit:]]+ *(?= dependencies are out of date)')" | 
					
						
							| 
									
										
										
										
											2021-11-11 20:41:15 +08:00
										 |  |  | ## Disabled due to yarn PnP update breaking npm audit | 
					
						
							|  |  |  | #VULNERABILITY_AUDIT="$(yarn npm audit --all --recursive --json)" | 
					
						
							|  |  |  | #LOW_VULNERABILITIES="$(echo "${VULNERABILITY_AUDIT}" | grep -o -i '"severity":"low"' | wc -l)" | 
					
						
							|  |  |  | #MED_VULNERABILITIES="$(echo "${VULNERABILITY_AUDIT}" | grep -o -i '"severity":"moderate"' | wc -l)" | 
					
						
							|  |  |  | #HIGH_VULNERABILITIES="$(echo "${VULNERABILITY_AUDIT}" | grep -o -i '"severity":"high"' | wc -l)" | 
					
						
							|  |  |  | #CRITICAL_VULNERABILITIES="$(echo "${VULNERABILITY_AUDIT}" | grep -o -i '"severity":"critical"' | wc -l)" | 
					
						
							| 
									
										
										
										
											2021-06-29 15:29:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-29 22:32:58 +08:00
										 |  |  | echo -e "Typescript errors: $ERROR_COUNT" | 
					
						
							| 
									
										
										
										
											2021-08-23 16:08:01 +08:00
										 |  |  | echo -e "Accessibility errors: $ACCESSIBILITY_ERRORS" | 
					
						
							| 
									
										
										
										
											2019-03-29 22:32:58 +08:00
										 |  |  | echo -e "Directives: $DIRECTIVES" | 
					
						
							|  |  |  | echo -e "Controllers: $CONTROLLERS" | 
					
						
							| 
									
										
										
										
											2020-04-02 22:18:06 +08:00
										 |  |  | echo -e "Legacy forms: $LEGACY_FORMS" | 
					
						
							| 
									
										
										
										
											2021-06-29 15:29:26 +08:00
										 |  |  | echo -e "Total bundle folder size: $TOTAL_BUNDLE" | 
					
						
							|  |  |  | echo -e "Total outdated dependencies: $OUTDATED_DEPENDENCIES" | 
					
						
							|  |  |  | echo -e "Low vulnerabilities: $LOW_VULNERABILITIES" | 
					
						
							|  |  |  | echo -e "Med vulnerabilities: $MED_VULNERABILITIES" | 
					
						
							|  |  |  | echo -e "High vulnerabilities: $HIGH_VULNERABILITIES" | 
					
						
							| 
									
										
										
										
											2021-10-12 21:45:03 +08:00
										 |  |  | echo -e "Critical vulnerabilities: $CRITICAL_VULNERABILITIES" | 
					
						
							| 
									
										
										
										
											2019-03-13 17:10:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 18:43:23 +08:00
										 |  |  | BETTERER_STATS="" | 
					
						
							|  |  |  | while read -r name value | 
					
						
							|  |  |  | do | 
					
						
							|  |  |  |   BETTERER_STATS+=$'\n  ' | 
					
						
							|  |  |  |   BETTERER_STATS+="\"grafana.ci-code.betterer.${name}\": \"${value}\"," | 
					
						
							|  |  |  | done <<< "$(yarn betterer:stats)" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-07 19:17:03 +08:00
										 |  |  | echo "Metrics: {
 | 
					
						
							| 
									
										
										
										
											2022-04-04 18:43:23 +08:00
										 |  |  |   $BETTERER_STATS | 
					
						
							| 
									
										
										
										
											2020-09-07 19:17:03 +08:00
										 |  |  |   \"grafana.ci-code.strictErrors\": \"${ERROR_COUNT}\", | 
					
						
							| 
									
										
										
										
											2021-08-23 17:36:39 +08:00
										 |  |  |   \"grafana.ci-code.accessibilityErrors\": \"${ACCESSIBILITY_ERRORS}\", | 
					
						
							| 
									
										
										
										
											2020-09-07 19:17:03 +08:00
										 |  |  |   \"grafana.ci-code.directives\": \"${DIRECTIVES}\", | 
					
						
							|  |  |  |   \"grafana.ci-code.controllers\": \"${CONTROLLERS}\", | 
					
						
							| 
									
										
										
										
											2021-02-15 18:15:34 +08:00
										 |  |  |   \"grafana.ci-code.legacyForms\": \"${LEGACY_FORMS}\", | 
					
						
							| 
									
										
										
										
											2021-06-29 15:29:26 +08:00
										 |  |  |   \"grafana.ci-code.bundleFolderSize\": \"${TOTAL_BUNDLE}\", | 
					
						
							| 
									
										
										
										
											2022-06-23 20:20:45 +08:00
										 |  |  |   \"grafana.ci-code.dependencies.outdated\": \"${OUTDATED_DEPENDENCIES}\" | 
					
						
							| 
									
										
										
										
											2020-09-07 19:17:03 +08:00
										 |  |  | }"
 |