mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-04 15:27:36 +08:00
chore: monitor structure of the project (#6291)
This commit is contained in:
22
.github/workflows/project_structure.yml
vendored
Normal file
22
.github/workflows/project_structure.yml
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
name: ProjectStructure
|
||||||
|
|
||||||
|
'on':
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check_structure:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.13'
|
||||||
|
|
||||||
|
- name: Check project structure
|
||||||
|
run: python3 .github/workflows/scripts/check_structure.py
|
||||||
|
...
|
27
.github/workflows/scripts/check_structure.py
vendored
Normal file
27
.github/workflows/scripts/check_structure.py
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import pathlib
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def _is_java_file_properly_located(java_file: pathlib.Path) -> bool:
|
||||||
|
main_parents = java_file.parent.parents
|
||||||
|
return (
|
||||||
|
pathlib.Path("src/main/java/com/thealgorithms/") in main_parents
|
||||||
|
or pathlib.Path("src/test/java/com/thealgorithms/") in main_parents
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _find_misplaced_java_files() -> list[pathlib.Path]:
|
||||||
|
return [
|
||||||
|
java_file
|
||||||
|
for java_file in pathlib.Path(".").rglob("*.java")
|
||||||
|
if not _is_java_file_properly_located(java_file)
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
misplaced_files = _find_misplaced_java_files()
|
||||||
|
if misplaced_files:
|
||||||
|
print("The following java files are not located in the correct directory:")
|
||||||
|
for _ in misplaced_files:
|
||||||
|
print(_)
|
||||||
|
sys.exit(1)
|
Reference in New Issue
Block a user