Skip to content
Snippets Groups Projects
Commit 39e37aab authored by Administrator's avatar Administrator
Browse files

Check for non ASCII characters in CI

Recently it was found that some files contain non ASCII charaters. The added
CI tests checks for files which contain non ASCII characters. Test fails if
non ASCII characters are found in a commit.
parent 1610f285
Branches
Tags
1 merge request!2054Check for non ASCII characters in CI
Pipeline #33379 passed
......@@ -181,6 +181,24 @@ FileEndCheck:
- git fetch upstream
- scripts/check-file-ending.sh upstream
NonASCIICharacterCheck:
stage: checkFormat
image: alpine
tags:
- docker
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^DC_.*$/
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- apk update && apk add git bash file pcre-tools
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- scripts/check-non-ascii-characters.sh upstream
FileLicenceCheck:
stage: checkFormat
......
......
#!/bin/bash
# Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
# SPDX-License-Identifier: GPL-3.0-only
# First commited by Florian Uhlig
if [[ $# -eq 1 ]]; then
UPSTREAM=$1
else
if [ -z $UPSTREAM ]; then
UPSTREAM=$(git remote -v | grep git.cbm.gsi.de[:/]computing/cbmroot | cut -f1 | uniq)
if [ -z $UPSTREAM ]; then
echo "Error: Name of upstream repository not provided and not found by automatic means"
echo 'Please provide if by checking your remotes with "git remote -v" and exporting UPSTREAM'
echo "or passing as an argument"
exit -1
fi
fi
fi
echo "Upstream name is :" $UPSTREAM
BASE_COMMIT=$UPSTREAM/master
CHANGED_FILES=$(git diff --name-only $BASE_COMMIT)
for file in $CHANGED_FILES; do
result=$(file $file | grep UTF-8)
if [[ "$result" != "" ]]; then
echo " "
echo "File $file contains non ASCII characters"
pcregrep --color='auto' -n "[\x80-\xFF]" $file
echo " "
okay=false
fi
done
if [[ "$okay" = "false" ]]; then
echo ""
echo "There are files which contain non ASCII characters"
echo "Test failed"
exit 1
else
exit 0
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment