Create validate_new_filenames.yml

Just like #640 but:
1. Does a git diff and only checks newly added .cpp files
2. Embeds the Python code directly in the .yml file
This commit is contained in:
Christian Clauss
2019-11-27 14:17:48 +01:00
committed by GitHub
parent 6d3a851766
commit 1568b2bc1b

View File

@@ -0,0 +1,37 @@
name: validate_new_filenames
on: [push, pull_request]
jobs:
validate_new_filenames:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY
- run: git diff origin/master --name-only > git_diff.txt
- name: Validate new filenames
shell: python
run: |
import os
import sys
print(sys.version_info) # legacy Python :-(
with open("git_diff.txt") as in_file:
cpp_files = sorted(line.strip() for line in in_file
if line.strip().lower().endswith(".cpp"))
upper_files = [file for file in cpp_files if file != file.lower()]
if upper_files:
print("{} files contain uppercase characters:".format(len(upper_files)))
print("\n".join(upper_files) + "\n")
space_files = [file for file in cpp_files if " " in file or "-" in file]
if space_files:
print("{} files contain space or dash characters:".format(len(space_files)))
print("\n".join(space_files) + "\n")
nodir_files = [file for file in cpp_files if os.sep not in file]
if nodir_files:
print("{} files are not in a directory:".format(len(nodir_files)))
print("\n".join(nodir_files) + "\n")
bad_files = len(upper_files + space_files + nodir_files)
if bad_files:
sys.exit(bad_files)