27_PAT #339
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |