From 838356a69c8416088f6262473ce1e951ff3b688c Mon Sep 17 00:00:00 2001 From: RDW Date: Wed, 17 Nov 2021 11:54:44 +0100 Subject: [PATCH 1/3] CI: Ignore removed lines in the No TODOs workflow It makes no sense to fail the CI when TODOs etc. are actually removed, as that's the whole point of tracking them: New ones should not be added and existing ones should be (eventually) converted to issues. --- .github/check-for-todos.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/check-for-todos.sh b/.github/check-for-todos.sh index e27779c..5ff5a56 100755 --- a/.github/check-for-todos.sh +++ b/.github/check-for-todos.sh @@ -4,11 +4,11 @@ echo "Checking for temporary comments..." echo "" -NUMBER_OF_COMMITTED_TODOS=$(git diff HEAD origin/main | grep -o 'TODO' | wc -l) -NUMBER_OF_COMMITTED_TBDS=$(git diff HEAD origin/main | grep -o 'TBD' | wc -l) -NUMBER_OF_COMMITTED_WIPS=$(git diff HEAD origin/main | grep -o 'WIP' | wc -l) -NUMBER_OF_COMMITTED_FIXMES=$(git diff HEAD origin/main | grep -o 'FIXME' | wc -l) -NUMBER_OF_COMMITTED_HACKS=$(git diff HEAD origin/main | grep -o 'HACK' | wc -l) +NUMBER_OF_COMMITTED_TODOS=$(git diff origin/main HEAD | grep ^+ | grep -o 'TODO' | wc -l) +NUMBER_OF_COMMITTED_TBDS=$(git diff origin/main HEAD | grep ^+ | grep -o 'TBD' | wc -l) +NUMBER_OF_COMMITTED_WIPS=$(git diff origin/main HEAD | grep ^+ | grep -o 'WIP' | wc -l) +NUMBER_OF_COMMITTED_FIXMES=$(git diff origin/main HEAD | grep ^+ | grep -o 'FIXME' | wc -l) +NUMBER_OF_COMMITTED_HACKS=$(git diff origin/main HEAD | grep ^+ | grep -o 'HACK' | wc -l) echo "Committed TODOs: $NUMBER_OF_COMMITTED_TODOS" echo "Committed TBDs: $NUMBER_OF_COMMITTED_TBDS" @@ -28,7 +28,7 @@ if [ $NUMBER_OF_COMMITTED_TODOS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff HEAD origin/main | grep --color=always 'TODO' + git diff origin/main HEAD | grep ^+ | grep --color=always 'TODO' exit 1 fi @@ -43,7 +43,7 @@ if [ $NUMBER_OF_COMMITTED_TBDS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff HEAD origin/main | grep --color=always 'TBD' + git diff origin/main HEAD | grep ^+ | grep --color=always 'TBD' exit 2 fi @@ -58,7 +58,7 @@ if [ $NUMBER_OF_COMMITTED_WIPS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff HEAD origin/main | grep --color=always 'WIP' + git diff origin/main HEAD | grep ^+ | grep --color=always 'WIP' exit 3 fi @@ -73,7 +73,7 @@ if [ $NUMBER_OF_COMMITTED_FIXMES -ne 0 ]; then echo "Processed git diff:" echo "" - git diff HEAD origin/main | grep --color=always 'FIXME' + git diff origin/main HEAD | grep ^+ | grep --color=always 'FIXME' exit 4 fi @@ -88,7 +88,7 @@ if [ $NUMBER_OF_COMMITTED_HACKS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff HEAD origin/main | grep --color=always 'HACK' + git diff origin/main HEAD | grep ^+ | grep --color=always 'HACK' exit 5 fi From 0401c0fd79642341a0a4eb5c1f1284bb3fe185a3 Mon Sep 17 00:00:00 2001 From: RDW Date: Wed, 17 Nov 2021 11:56:51 +0100 Subject: [PATCH 2/3] CI: Display more context on failed No TODO workflow runs This should help seeing where the change originates. --- .github/check-for-todos.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/check-for-todos.sh b/.github/check-for-todos.sh index 5ff5a56..49c30a4 100755 --- a/.github/check-for-todos.sh +++ b/.github/check-for-todos.sh @@ -28,7 +28,7 @@ if [ $NUMBER_OF_COMMITTED_TODOS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'TODO' + git diff origin/main HEAD | grep ^+ | grep --color=always 'TODO' -C3 exit 1 fi @@ -43,7 +43,7 @@ if [ $NUMBER_OF_COMMITTED_TBDS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'TBD' + git diff origin/main HEAD | grep ^+ | grep --color=always 'TBD' -C3 exit 2 fi @@ -58,7 +58,7 @@ if [ $NUMBER_OF_COMMITTED_WIPS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'WIP' + git diff origin/main HEAD | grep ^+ | grep --color=always 'WIP' -C3 exit 3 fi @@ -73,7 +73,7 @@ if [ $NUMBER_OF_COMMITTED_FIXMES -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'FIXME' + git diff origin/main HEAD | grep ^+ | grep --color=always 'FIXME' -C3 exit 4 fi @@ -88,7 +88,7 @@ if [ $NUMBER_OF_COMMITTED_HACKS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'HACK' + git diff origin/main HEAD | grep ^+ | grep --color=always 'HACK' -C3 exit 5 fi From 1569a9cb0e4f7b2e7a3dd64106fc5e2a88e10a41 Mon Sep 17 00:00:00 2001 From: RDW Date: Wed, 17 Nov 2021 12:02:52 +0100 Subject: [PATCH 3/3] CI: Ignore the checking script itself in No TODO workflow runs There's obviously going to be failures whenever it is edited, so ignoring that only makes sense. --- .github/check-for-todos.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/check-for-todos.sh b/.github/check-for-todos.sh index 49c30a4..d902846 100755 --- a/.github/check-for-todos.sh +++ b/.github/check-for-todos.sh @@ -4,11 +4,11 @@ echo "Checking for temporary comments..." echo "" -NUMBER_OF_COMMITTED_TODOS=$(git diff origin/main HEAD | grep ^+ | grep -o 'TODO' | wc -l) -NUMBER_OF_COMMITTED_TBDS=$(git diff origin/main HEAD | grep ^+ | grep -o 'TBD' | wc -l) -NUMBER_OF_COMMITTED_WIPS=$(git diff origin/main HEAD | grep ^+ | grep -o 'WIP' | wc -l) -NUMBER_OF_COMMITTED_FIXMES=$(git diff origin/main HEAD | grep ^+ | grep -o 'FIXME' | wc -l) -NUMBER_OF_COMMITTED_HACKS=$(git diff origin/main HEAD | grep ^+ | grep -o 'HACK' | wc -l) +NUMBER_OF_COMMITTED_TODOS=$(git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep -o 'TODO' | wc -l) +NUMBER_OF_COMMITTED_TBDS=$(git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep -o 'TBD' | wc -l) +NUMBER_OF_COMMITTED_WIPS=$(git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep -o 'WIP' | wc -l) +NUMBER_OF_COMMITTED_FIXMES=$(git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep -o 'FIXME' | wc -l) +NUMBER_OF_COMMITTED_HACKS=$(git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep -o 'HACK' | wc -l) echo "Committed TODOs: $NUMBER_OF_COMMITTED_TODOS" echo "Committed TBDs: $NUMBER_OF_COMMITTED_TBDS" @@ -28,7 +28,7 @@ if [ $NUMBER_OF_COMMITTED_TODOS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'TODO' -C3 + git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep --color=always 'TODO' -C3 exit 1 fi @@ -43,7 +43,7 @@ if [ $NUMBER_OF_COMMITTED_TBDS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'TBD' -C3 + git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep --color=always 'TBD' -C3 exit 2 fi @@ -58,7 +58,7 @@ if [ $NUMBER_OF_COMMITTED_WIPS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'WIP' -C3 + git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep --color=always 'WIP' -C3 exit 3 fi @@ -73,7 +73,7 @@ if [ $NUMBER_OF_COMMITTED_FIXMES -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'FIXME' -C3 + git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep --color=always 'FIXME' -C3 exit 4 fi @@ -88,7 +88,7 @@ if [ $NUMBER_OF_COMMITTED_HACKS -ne 0 ]; then echo "Processed git diff:" echo "" - git diff origin/main HEAD | grep ^+ | grep --color=always 'HACK' -C3 + git diff origin/main HEAD ':(exclude).github/check-for-todos.sh' | grep ^+ | grep --color=always 'HACK' -C3 exit 5 fi