1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Only check formatting on modified files (#1673)

* only check formatting on modified files (attempt 1)

* foreshadow maximum command string length being an issue and pass files list using a file

* rm temp file list otherwise it shows in git status and counts as a "formatting diff"...

* cheeky z_play modif

* format
This commit is contained in:
Dragorn421 2024-01-31 04:25:24 +01:00 committed by GitHub
parent 87a886df5b
commit 44408ce219
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 66 additions and 7 deletions

20
Jenkinsfile vendored
View File

@ -4,10 +4,24 @@ pipeline {
}
stages {
stage('Check formatting') {
stage('Check formatting (full)') {
when {
branch 'main'
}
steps {
echo 'Checking formatting...'
sh 'tools/check_format.sh'
echo 'Checking formatting on all files...'
sh 'tools/check_format.sh full'
}
}
stage('Check formatting (modified)') {
when {
not {
branch 'main'
}
}
steps {
echo 'Checking formatting on modified files...'
sh 'tools/check_format.sh modified'
}
}
stage('Setup') {

View File

@ -9,6 +9,7 @@ import shutil
import subprocess
import sys
import tempfile
from pathlib import Path
from functools import partial
from typing import List
@ -150,6 +151,15 @@ def main():
action="store_true",
help="Print the paths to the clang-* binaries used",
)
parser.add_argument(
"--files-list",
dest="files_list",
help="A file listing the files to format",
)
parser.add_argument(
"--verbose",
action="store_true",
)
parser.add_argument("files", metavar="file", nargs="*")
parser.add_argument(
"-j",
@ -175,10 +185,18 @@ def main():
f"Error: neither clang-apply-replacements nor clang-apply-replacements-{CLANG_VER} found (required to use -j)"
)
if args.files:
files = args.files
if args.files or args.files_list:
files = []
files.extend(args.files)
if args.files_list:
files.extend(Path(args.files_list).read_text().split())
files = list(files)
extra_files = []
if args.verbose:
print("Formatting specific files:", len(files), files)
else:
if args.verbose:
print("Formatting all files")
files = glob.glob("src/**/*.c", recursive=True)
extra_files = glob.glob("assets/**/*.xml", recursive=True)

View File

@ -1,8 +1,35 @@
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: $0 <full | modified>. Exiting."
exit -1
fi
STATUSOLD=`git status --porcelain`
./format.py -j
if [ $? -ne 0 ]
if [ $1 = 'modified' ]
then
FILES_LIST=.tmp_format_modified_files_list.txt
git show --name-only --format='' origin/main.. | grep 'src/.*\.c' | sort | uniq > $FILES_LIST
if [ ${PIPESTATUS[0]} -ne 0 ] # git show failed
then
echo "Listing modified files failed. Exiting."
exit -1
fi
./format.py --verbose -j`nproc` --files-list $FILES_LIST
FORMAT_EXIT_CODE=$?
rm $FILES_LIST
elif [ $1 = 'full' ]
then
./format.py -j
FORMAT_EXIT_CODE=$?
else
echo "Unknown argument $1. Exiting."
exit -1
fi
if [ $FORMAT_EXIT_CODE -ne 0 ]
then
echo "Formatter failed. Exiting."
exit -1