Skip to content

Commit a1f0c01

Browse files
2 parents e290c6e + 7e536fa commit a1f0c01

1 file changed

Lines changed: 20 additions & 50 deletions

File tree

.github/workflows/blank.yml

Lines changed: 20 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
paths:
66
- 'LearningManagementSystems/**/*.sql'
7-
- '!**/*.prisma' # Не запускать, если меняется только .prisma
7+
- '!**/*.prisma' # Не запускать, если меняются только .prisma файлы
88
branches:
99
- main
1010
- master
@@ -15,6 +15,7 @@ jobs:
1515
permissions:
1616
contents: write
1717
pull-requests: write
18+
1819
steps:
1920
- name: Checkout repository
2021
uses: actions/checkout@v4
@@ -30,70 +31,39 @@ jobs:
3031
- name: Install Prisma CLI
3132
run: npm install -g prisma
3233

33-
- name: Find SQL files
34-
id: find_sql
35-
run: |
36-
SQL_FILES=$(find LearningManagementSystems -name "*.sql" -type f)
37-
if [ -z "$SQL_FILES" ]; then
38-
echo "No SQL files found"
39-
exit 1
40-
fi
41-
echo "files=$SQL_FILES" >> $GITHUB_OUTPUT
42-
43-
- name: Process each SQL file
34+
- name: Process SQL files
4435
run: |
45-
while IFS= read -r sql_file; do
46-
echo "Processing $sql_file"
47-
48-
# Определяем путь к Prisma-файлу
36+
find LearningManagementSystems -name "*.sql" | while read sql_file; do
4937
prisma_file="${sql_file%.sql}.prisma"
50-
temp_db="/tmp/$(basename ${sql_file%.sql}).db"
51-
52-
# Создаём временную SQLite базу
53-
sqlite3 "$temp_db" < "$sql_file"
38+
temp_db="/tmp/$(basename "${sql_file%.sql}").db"
5439
55-
# Если Prisma-файл ещё не существует — создаём новый schema.prisma
56-
if [ ! -f "$prisma_file" ]; then
57-
mkdir -p "$(dirname "$prisma_file")"
58-
cat > "$prisma_file" << EOF
59-
// Auto-generated from $sql_file
60-
generator client {
61-
provider = "prisma-client-js"
62-
}
40+
echo "🔄 Processing $sql_file -> $prisma_file"
6341
64-
datasource db {
65-
provider = "mysql"
66-
url = "file:$temp_db"
67-
}
42+
sqlite3 "$temp_db" < "$sql_file"
6843
69-
// Models will be added below
70-
EOF
71-
fi
44+
mkdir -p "$(dirname "$prisma_file")"
7245
73-
# Интроспекция: получаем схему из SQL через SQLite
74-
npx prisma db pull --schema="$prisma_file" --force
46+
printf 'generator client {\n provider = "prisma-client-js"\n}\n\ndatasource db {\n provider = "sqlite"\n url = "file:%s"\n}\n' "$temp_db" > "$prisma_file"
7547
76-
# Форматируем
77-
npx prisma format --schema="$prisma_file"
48+
prisma db pull --schema="$prisma_file" --force
49+
prisma format --schema="$prisma_file"
7850
79-
echo "✅ Generated Prisma schema: $prisma_file"
80-
done <<< "$(find LearningManagementSystems -name "*.sql" -type f)"
51+
echo "✅ Generated $prisma_file"
52+
done
8153
8254
- name: Commit and Push Prisma files
8355
run: |
8456
git config user.name "github-actions[bot]"
8557
git config user.email "github-actions[bot]@users.noreply.github.com"
8658
87-
# Добавляем все .prisma файлы
59+
# Добавляем все новые/изменённые .prisma файлы
8860
git add **/*.prisma
8961
90-
# Проверяем, есть ли изменения
91-
if git diff-index --quiet HEAD --; then
92-
echo "✅ No changes to commit"
93-
exit 0
62+
# Проверяем, есть ли изменения для коммита
63+
if ! git diff --cached --quiet; then
64+
git commit -m "🤖 Auto-generate Prisma schema from SQL. Automatically generated via GitHub Actions when SQL schema was updated."
65+
git push origin HEAD:${{ github.ref_name }}
66+
echo "✅ Изменения закоммичены и отправлены в ${{ github.ref_name }}"
9467
else
95-
git commit -m "🤖 Auto-generate Prisma schema from SQL
96-
Generated via GitHub Actions when SQL was updated."
97-
git push origin HEAD:main
98-
echo "✅ Prisma schemas committed and pushed"
68+
echo "ℹ️ Изменений нет — коммит не требуется"
9969
fi

0 commit comments

Comments
 (0)