2021-12-15 10:07:11 -06:00
#!/usr/bin/env bash
2022-01-20 03:20:32 -06:00
# Find package directories
PACKAGES = $( ls -d ./packages/*/)
2021-12-15 10:07:11 -06:00
EXIT_CODE = 0
GITHUB_MESSAGE = ""
2022-01-03 05:48:12 -06:00
# Loop through the packages
2022-01-20 03:20:32 -06:00
while IFS = " " read -r -a package; do
2021-12-15 10:07:11 -06:00
2022-01-20 03:20:32 -06:00
# shellcheck disable=SC2128
PACKAGE_PATH = $( basename " $package " )
2021-12-15 10:07:11 -06:00
# Calculate current and previous package paths / names
2022-01-20 03:20:32 -06:00
PREV = " ./main/packages/ $PACKAGE_PATH /dist/ "
CURRENT = " ./pr/packages/ $PACKAGE_PATH /dist/ "
2021-12-15 10:07:11 -06:00
2022-01-20 03:20:32 -06:00
# Temporarily skipping these packages as they don't have any exposed static typing
if [ [ " $PACKAGE_PATH " = = 'grafana-toolkit' || " $PACKAGE_PATH " = = 'jaeger-ui-components' ] ] ; then
2021-12-15 10:07:11 -06:00
continue
fi
# Run the comparison and record the exit code
echo ""
echo ""
2022-01-20 03:20:32 -06:00
echo " ${ PACKAGE_PATH } "
2021-12-15 10:07:11 -06:00
echo "================================================="
2022-01-27 09:38:12 -06:00
npm exec -- @grafana/levitate@0.2.0 compare --prev " $PREV " --current " $CURRENT "
2021-12-15 10:07:11 -06:00
# Check if the comparison returned with a non-zero exit code
# Record the output, maybe with some additional information
STATUS = $?
# Final exit code
# (non-zero if any of the packages failed the checks)
if [ $STATUS -gt 0 ]
then
EXIT_CODE = 1
2022-01-20 03:20:32 -06:00
GITHUB_MESSAGE = " ${ GITHUB_MESSAGE } **\\\` ${ PACKAGE_PATH } \\\`** has possible breaking changes ([more info]( ${ GITHUB_JOB_LINK } #step: ${ GITHUB_STEP_NUMBER } :1))<br /> "
fi
2021-12-15 10:07:11 -06:00
done <<< " $PACKAGES "
# "Export" the message to an environment variable that can be used across Github Actions steps
echo " ::set-output name=is_breaking:: $EXIT_CODE "
echo " ::set-output name=message:: $GITHUB_MESSAGE "
# We will exit the workflow accordingly at another step
exit 0