forked from UNN/2026-rff_mp
[PR] removed workflow
This commit is contained in:
parent
8d0bb1cc91
commit
3738ec9766
|
|
@ -1,72 +0,0 @@
|
||||||
|
|
||||||
name: PR Validation
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- develop
|
|
||||||
types: [opened, synchronize, reopened]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
pr_checks:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
# 1. Клонируем репозиторий
|
|
||||||
- name: Checkout code
|
|
||||||
uses: https://gitea.com/gitea/act_runner@v0.2.8 # Используем официальный action для проверки кода
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
# 2. Получаем имя автора PR
|
|
||||||
- name: Get PR Author
|
|
||||||
id: pr_info
|
|
||||||
run: |
|
|
||||||
echo "username=${{ github.actor }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
|
|
||||||
# 3. Проверка: Шаблон сообщения коммита [1] ...
|
|
||||||
- name: Check Commit Message Format
|
|
||||||
run: |
|
|
||||||
USERNAME="${{ steps.pr_info.outputs.username }}"
|
|
||||||
BASE_SHA="${{ github.event.pull_request.base.sha }}"
|
|
||||||
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
|
|
||||||
|
|
||||||
echo "Checking commits between $BASE_SHA and $HEAD_SHA..."
|
|
||||||
|
|
||||||
# Перебираем все коммиты в PR
|
|
||||||
git log $BASE_SHA..$HEAD_SHA --pretty=format:"%H %s" | while read -r commit_hash commit_msg; do
|
|
||||||
# Проверяем, начинается ли сообщение с [X] (где X - цифра)
|
|
||||||
# Регулярное выражение: символ '^', открывающая '[', цифра, закрывающая ']'
|
|
||||||
if ! echo "$commit_msg" | grep -q "^\[[0-9]+\]"; then
|
|
||||||
echo "❌ ОШИБКА: Коммит '$commit_msg' не соответствует шаблону '[X] *'"
|
|
||||||
echo "Коммит должен начинаться с цифры в квадратных скобках, например: [1] ..."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "✅ Шаблон сообщений соответствует требованиям."
|
|
||||||
|
|
||||||
# 4. Проверка: Проверка, что файлы лежат в подпапке автора
|
|
||||||
- name: Check Files Location
|
|
||||||
run: |
|
|
||||||
USERNAME="${{ steps.pr_info.outputs.username }}"
|
|
||||||
BASE_SHA="${{ github.event.pull_request.base.sha }}"
|
|
||||||
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
|
|
||||||
|
|
||||||
echo "Checking file locations..."
|
|
||||||
|
|
||||||
# Получаем список файлов, которые изменились или добавились в PR
|
|
||||||
git diff --name-only --diff-filter=ACM $BASE_SHA..$HEAD_SHA | while read -r file; do
|
|
||||||
# Извлекаем первую папку из пути к файлу (разделитель '/')
|
|
||||||
# Например: "author/subfolder/file.txt" -> "author"
|
|
||||||
first_folder=$(echo "$file" | cut -d'/' -f1)
|
|
||||||
|
|
||||||
# Проверяем, совпадает ли эта папка с именем автора PR
|
|
||||||
if [ "$first_folder" != "$USERNAME" ]; then
|
|
||||||
echo "❌ ОШИБКА: Файл '$file' не находится в подпапке автора ('$USERNAME')."
|
|
||||||
echo "Все изменения должны лежать в папке с именем автора."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "✅ Файлы находятся в правильных папках."
|
|
||||||
Loading…
Reference in New Issue
Block a user