Initialize IKT218 2026 OSDEV Base
This commit is contained in:
78
.github/workflows/pr-check-changed-root.yml
vendored
Normal file
78
.github/workflows/pr-check-changed-root.yml
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
name: Pull Request Check
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
check-modified-files:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Check modified files
|
||||
run: |
|
||||
echo "Fetching origin/${{ github.base_ref }}"
|
||||
git fetch origin ${{ github.base_ref }}
|
||||
|
||||
echo "Checking for changes outside 'build/' and 'src/' directories"
|
||||
OUTSIDE_CHANGE=$(git diff --name-only origin/${{ github.base_ref }} | grep -vE '^(build/|src/)' | tr -d '[:space:]')
|
||||
|
||||
|
||||
if [ ! -z "$OUTSIDE_CHANGE" ]; then
|
||||
echo "Error: Pull Request contains changes outside 'build/' and 'src/' directories."
|
||||
echo "The following files/directories are outside the allowed paths:"
|
||||
echo "$OUTSIDE_CHANGE"
|
||||
exit 1
|
||||
else
|
||||
echo "No changes outside 'build/' and 'src/' directories. Proceeding with the workflow."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
- name: Check group_name folder modifications
|
||||
run: |
|
||||
echo "Fetching origin/${{ github.base_ref }}"
|
||||
git fetch origin ${{ github.base_ref }}
|
||||
|
||||
echo "Listing changed files from origin/${{ github.base_ref }}"
|
||||
CHANGED_FILES_LIST=$(git diff --name-only origin/${{ github.base_ref }})
|
||||
|
||||
echo "List of changed files:"
|
||||
echo "$CHANGED_FILES_LIST"
|
||||
|
||||
echo "Filtering changed files for specific directories"
|
||||
if echo "$CHANGED_FILES_LIST" | grep -E '^build/group_name|^src/group_name'; then
|
||||
echo "Error: Changes detected in restricted directories ('build/group_name' or 'src/group_name')."
|
||||
echo "Please ensure that your pull request does not modify files in these directories."
|
||||
echo "The following files triggered this error:"
|
||||
echo "$CHANGED_FILES_LIST" | grep -E '^build/group_name|^src/group_name'
|
||||
exit 1
|
||||
else
|
||||
echo "No changes in restricted directories detected. Proceeding with the workflow."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
- name: Check for newly created files in src/ and build/
|
||||
run: |
|
||||
echo "Checking for newly created files in 'src/' and 'build/' directories"
|
||||
|
||||
# Fetch the base branch
|
||||
git fetch origin ${{ github.base_ref }}
|
||||
|
||||
# List only newly created files, excluding directories
|
||||
NEW_FILES=$(git diff --name-only --diff-filter=A origin/${{ github.base_ref }} | grep -E '^(build/|src/)[^/]+$' | tr -d '[:space:]')
|
||||
|
||||
echo "List of new files:"
|
||||
echo "$NEW_FILES"
|
||||
|
||||
if [ ! -z "$NEW_FILES" ]; then
|
||||
echo "Error: New files have been created in 'src/' or 'build/' directories."
|
||||
echo "Creating new files in these directories is not allowed in this workflow."
|
||||
echo "The following files triggered this error:"
|
||||
echo "$NEW_FILES"
|
||||
exit 1
|
||||
else
|
||||
echo "No new files in 'src/' or 'build/' directories. Proceeding with the workflow."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user