lint: catch missing --rm flag for 'docker run'

Not having the --rm flag causes docker containers to be stored forever,
so make sure we always add it to the "docker run" commands that we run
on jenkins via scripts in various repositories.

Depends: docker-playground I48b01c43fedf379b8a565eaab0369806d7831bd8
Related: https://osmocom.org/projects/osmocom-servers/wiki/Docker_cache_clean_up
Related: SYS#5827, OS#5099
Change-Id: I8ab9c291504475d670bdefc50c4524c5bdd4c880
This commit is contained in:
Oliver Smith 2022-02-11 10:22:49 +01:00
parent 2e88fa2663
commit 41e218a355
2 changed files with 35 additions and 7 deletions

17
lint/docker_run_rm.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
# Verify that "docker run" has a "--rm" in the same line or next line, so we
# don't fill up space on jenkins nodes with never deleted containers:
# https://osmocom.org/projects/osmocom-servers/wiki/Docker_cache_clean_up
RET=0
for i in $(git grep -l '^[^#]*docker run'); do
if [ -z "$(grep -A1 "docker run" "$i" | grep -- "--rm")" ]; then
echo "ERROR: missing --rm after 'docker run' (same line or next line):"
grep --color=always -H -n -A1 "docker run" "$i"
echo
RET=1
fi
done
exit $RET

View File

@ -19,20 +19,31 @@ if [ -z "$COMMIT" ]; then
fi
fi
ERROR=0
echo "Running docker_run_rm.sh on the whole tree..."
echo
if ! "$SCRIPT_DIR"/docker_run_rm.sh; then
ERROR=1
fi
echo "Running checkpatch on 'git diff $COMMIT'..."
echo
if git diff -U0 "$COMMIT" | "$SCRIPT_DIR/checkpatch/checkpatch_osmo.sh" - \
if ! git diff -U0 "$COMMIT" | "$SCRIPT_DIR/checkpatch/checkpatch_osmo.sh" - \
--color=always \
--mailback \
--show-types \
--showfile \
--terse
then
exit 0
ERROR=1
fi
echo
echo "Please fix the linting errors above. More information:"
echo "https://osmocom.org/projects/cellular-infrastructure/wiki/Linting"
echo
exit 1
if [ "$ERROR" = 1 ]; then
echo
echo "Please fix the linting errors above. More information:"
echo "https://osmocom.org/projects/cellular-infrastructure/wiki/Linting"
echo
exit 1
fi