Detect "ignored yet tracked" files in GitLab CI
Ensure that no .gitignore file in the tree contains patterns matching files tracked by Git by adding a simple script that detects such situations and running that script as part of the "misc" job in the "precheck" stage of every GitLab CI pipeline.
This commit is contained in:
committed by
Tom Krizek
parent
a02da6cf21
commit
5b28da7ea0
@@ -443,6 +443,7 @@ misc:
|
||||
- test ! -f CHANGES.SE || sh util/check-line-length.sh CHANGES.SE
|
||||
- rm CHANGES.tmp
|
||||
- sh util/check-categories.sh
|
||||
- sh util/check-gitignore.sh
|
||||
- if git grep SYSTEMTESTTOP -- ':!.gitlab-ci.yml'; then echo 'Please use relative paths instead of $SYSTEMTESTTOP.'; exit 1; fi
|
||||
- bash util/unused-headers.sh
|
||||
- bash util/xmllint-html.sh
|
||||
|
||||
23
util/check-gitignore.sh
Executable file
23
util/check-gitignore.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
ignored_yet_tracked="$(git ls-files --cached --ignored --exclude-standard | git check-ignore --verbose --stdin --no-index)"
|
||||
|
||||
if [ -n "${ignored_yet_tracked}" ]; then
|
||||
echo "The following .gitignore files contain patterns matching tracked files:"
|
||||
echo
|
||||
echo "${ignored_yet_tracked}"
|
||||
echo
|
||||
echo "Please adjust the contents of the above .gitignore files and/or the names of the tracked files."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user