pipeline { agent any stages { stage('Check Indentation') { steps { script { // Check for spaces or mixed indentation sh ''' FILE_EXTENSIONS="css json js java py ps1 cs cmd bat htm html cpp c h hpp" # Convert FILE_EXTENSIONS to --include pattern INCLUDE_PATTERNS=$(echo $FILE_EXTENSIONS | sed 's/ /,*./g; s/^/*./') echo "Checking for lines starting with spaces in $FILE_EXTENSIONS files..." grep -nrP '^[ ]+' --include="$INCLUDE_PATTERNS" . | sed 's/\\([^:]*\\):\\([^:]*\\):\\([ ]*\\).*/File: \\1, Line: \\2, Found: \\3/' || echo "No lines with spaces found." echo "Checking for lines with mixed tabs and spaces in $FILE_EXTENSIONS files..." grep -nrP '^\t+ +' --include="$INCLUDE_PATTERNS" . | sed 's/\\([^:]*\\):\\([^:]*\\):\\(\\t* +\\).*/File: \\1, Line: \\2, Found: \\3/' || echo "No lines with mixed indentation found." if grep -nrP '^[ ]+' --include="$INCLUDE_PATTERNS" . || \ grep -nrP '^\t+ +' --include="$INCLUDE_PATTERNS" .; then echo "Indentation issues detected. Please fix the above lines." exit 1 else echo "No indentation issues detected." exit 0 fi ''' } } } stage('Validate CSS Syntax') { steps { script { sh 'stylelint ./**/*.css' } } } } }