first commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
RUN_BUNDLE_CHECK=1
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
scripts/github-workflows/check-builds.sh [--skip-bundle-check]
|
||||
|
||||
Checks the production bundle layout. By default this also verifies generated
|
||||
outputs are fresh with scripts/bundle/bundle.sh --check. Use
|
||||
--skip-bundle-check only after the current workflow has already run
|
||||
scripts/bundle/bundle.sh --clean in the same checkout.
|
||||
|
||||
Options:
|
||||
--skip-bundle-check Skip the generated-output freshness rebuild.
|
||||
-h, --help Show this help.
|
||||
EOF
|
||||
}
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
--skip-bundle-check)
|
||||
RUN_BUNDLE_CHECK=0
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown argument: $1" >&2
|
||||
usage >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
check_no_symlinks() {
|
||||
local root="$1"
|
||||
local first_link
|
||||
|
||||
if [ ! -e "$root" ]; then
|
||||
echo "Missing production bundle path: $root" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
first_link="$(find "$root" -type l -print -quit)"
|
||||
if [ -n "$first_link" ]; then
|
||||
echo "Production bundle paths must not contain symlinks." >&2
|
||||
echo "First symlink: $first_link" >&2
|
||||
echo "Run scripts/bundle/bundle.sh --clean and commit the generated outputs." >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_no_symlinks "viewer/packages"
|
||||
check_no_symlinks "skills/cad/scripts/packages"
|
||||
check_no_symlinks "skills/cad-viewer/scripts/viewer"
|
||||
check_no_symlinks "skills/urdf/scripts/packages"
|
||||
check_no_symlinks "skills/srdf/scripts/packages"
|
||||
check_no_symlinks "skills/sdf/scripts/packages"
|
||||
check_no_symlinks "plugins/cad/skills"
|
||||
|
||||
if [ "$RUN_BUNDLE_CHECK" -eq 1 ]; then
|
||||
"$REPO_ROOT/scripts/bundle/bundle.sh" --check
|
||||
else
|
||||
echo "Skipping bundle freshness rebuild; current workflow already bundled outputs."
|
||||
fi
|
||||
|
||||
echo "Production bundle layout is valid."
|
||||
Reference in New Issue
Block a user