rancher-partner-charts/scripts/package-ci

42 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
if [ -n "$(git status --porcelain)" ]; then
echo "Git needs to be clean to run this script"
exit 1
fi
ORIG_PACKAGE=${PACKAGE}
FAILED_PACKAGES=()
for package in $(find packages -type d -mindepth 1 -maxdepth 1 | sort); do
export PACKAGE="${package#packages\/}"
# Do developer workflow
if ! make prepare > /dev/null 2>&1; then
FAILED_PACKAGES+=("- ${PACKAGE} failed at prepare")
elif ! make patch > /dev/null 2>&1; then
FAILED_PACKAGES+=("- ${PACKAGE} failed at patch")
elif ! make clean > /dev/null 2>&1; then
FAILED_PACKAGES+=("- ${PACKAGE} failed at clean")
elif [ -n "$(git status --porcelain)" ]; then
FAILED_PACKAGES+=("- ${PACKAGE} generated additional changes: $(git status --porcelain | xargs)")
elif ! make charts > /dev/null 2>&1; then
FAILED_PACKAGES+=("- ${PACKAGE} failed at charts")
else
echo "${PACKAGE} passed ci"
fi
git clean -df > /dev/null 2>&1
git checkout -- . > /dev/null 2>&1
done
echo ""
if [ ${#FAILED_PACKAGES[@]} -ne 0 ]; then
echo "Failed to pass ci for the following packages:"
printf '%s\n' "${FAILED_PACKAGES[@]}"
else
echo "All packages pass ci!"
fi
export PACKAGE=${ORIG_PACKAGE}
unset ORIG_PACKAGE