mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-10-31 15:35:21 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: whitespace_checks
 | |
| 
 | |
| # Check whitespaces of the following file types
 | |
| # Not checked: .lua, .yml, .properties, .conf, .java, .py, .svg, .gradle, .xml, ...
 | |
| # (luacheck already checks .lua files)
 | |
| on:
 | |
|   push:
 | |
|     paths:
 | |
|       - '**.txt'
 | |
|       - '**.md'
 | |
|       - '**.[ch]'
 | |
|       - '**.cpp'
 | |
|       - '**.hpp'
 | |
|       - '**.sh'
 | |
|       - '**.cmake'
 | |
|       - '**.glsl'
 | |
|       - '**.lua'
 | |
|   pull_request:
 | |
|     paths:
 | |
|       - '**.txt'
 | |
|       - '**.md'
 | |
|       - '**.[ch]'
 | |
|       - '**.cpp'
 | |
|       - '**.hpp'
 | |
|       - '**.sh'
 | |
|       - '**.cmake'
 | |
|       - '**.glsl'
 | |
|       - '**.lua'
 | |
| 
 | |
| jobs:
 | |
|   trailing_whitespaces:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       # Line endings are already ensured by .gitattributes
 | |
|       - name: Check trailing whitespaces
 | |
|         run: |
 | |
|           if git ls-files |\
 | |
|             grep -E '\.txt$|\.md$|\.[ch]$|\.cpp$|\.hpp$|\.sh$|\.cmake$|\.glsl$' |\
 | |
|             xargs grep -n '\s$';\
 | |
|           then\
 | |
|             echo -e "\033[0;31mFound trailing whitespace";\
 | |
|             (exit 1);\
 | |
|           else\
 | |
|             (exit 0);\
 | |
|           fi
 | |
| 
 | |
|   indent_spaces:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       # Line endings are already ensured by .gitattributes
 | |
|       # Multiple multline comments in one line is not supported by this check 
 | |
|       # and there is no reason to use them
 | |
|       # So lines like: "/* */ /*" or "*/ a = 5; /*" will result in error
 | |
|       - name: Check for unsupported multiline comments
 | |
|         run: |
 | |
|           if git ls-files |\
 | |
|             grep -E '^src/.*\.cpp$|^src/.*\.[ch]$' |\
 | |
|             xargs grep -n '\*/.*/\*';\
 | |
|           then
 | |
|             echo -e "\033[0;31mUnsupported combination of multiline comments. New multiline comment should begin on new line.";\
 | |
|             (exit 1);\
 | |
|           else\
 | |
|             (exit 0);\
 | |
|           fi
 | |
|           if git ls-files |\
 | |
|             grep -E '\.lua$' |\
 | |
|             xargs grep -n -e '\]\].*--\[\[';\
 | |
|           then
 | |
|             echo -e "\033[0;31mUnsupported combination of multiline comments. New multiline comment should begin on new line.";\
 | |
|             (exit 1);\
 | |
|           else\
 | |
|             (exit 0);\
 | |
|           fi
 | |
|       # This prepare files for final check 
 | |
|       # See python script ./util/ci/indent_tab_preprocess.py for details.
 | |
|       - name: Preprocess files
 | |
|         run: |
 | |
|           git ls-files |\
 | |
|             grep -E '^src/.*\.cpp$|^src/.*\.[ch]$' |\
 | |
|             xargs -L 1 -P $(($(nproc) + 1)) \
 | |
|               python3 ./util/ci/indent_tab_preprocess.py "/*" "*/"
 | |
|           git ls-files |\
 | |
|             grep -E '\.lua$' |\
 | |
|             xargs -L 1 -P $(($(nproc) + 1)) \
 | |
|               python3 ./util/ci/indent_tab_preprocess.py "--[[" "]]"
 | |
|       # Check for bad indent.
 | |
|       # This runs over preprocessed files.
 | |
|       # If there is any remaining space on line beginning or after tab,
 | |
|       # error is generated
 | |
|       - name: Check indent spaces
 | |
|         run: |
 | |
|           if git ls-files |\
 | |
|             grep -E '^src/.*\.cpp$|^src/.*\.[ch]$|\.lua$' |\
 | |
|             xargs grep -n -P '^\t*[ ]';\
 | |
|           then\
 | |
|             echo -e "\033[0;31mFound incorrect indent whitespaces";\
 | |
|             (exit 1);\
 | |
|           else\
 | |
|             (exit 0);\
 | |
|           fi
 | |
| 
 | |
|   tabs_lua_api_files:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       # Some files should not contain tabs
 | |
|       - name: Check tabs in Lua API files
 | |
|         run: |
 | |
|           if grep -n $'\t' doc/lua_api.md doc/client_lua_api.md;\
 | |
|           then\
 | |
|             echo -e "\033[0;31mFound tab in markdown file";\
 | |
|             (exit 1);\
 | |
|           else\
 | |
|             (exit 0);\
 | |
|           fi
 | |
| 
 |