Skip to content

Commit b24661f

Browse files
indigoram89claude
andcommitted
Добавление автоматизации для Packagist
- Скрипт release.sh для упрощения создания релизов - GitHub Actions для автоматического тестирования - Бейджи в README - Подготовка к публикации на Packagist Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 9d677ef commit b24661f

File tree

4 files changed

+115
-1
lines changed

4 files changed

+115
-1
lines changed

.claude/settings.local.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@
1515
"Bash(git add:*)",
1616
"Bash(git commit:*)",
1717
"Bash(gh repo create:*)",
18-
"Bash(gh repo view:*)"
18+
"Bash(gh repo view:*)",
19+
"Bash(git push:*)",
20+
"Bash(git tag:*)",
21+
"Bash(chmod:*)"
1922
],
2023
"deny": []
2124
}

.github/workflows/tests.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
matrix:
15+
php: [8.4]
16+
laravel: [12.*]
17+
include:
18+
- laravel: 12.*
19+
testbench: 10.*
20+
21+
name: P${{ matrix.php }} - L${{ matrix.laravel }}
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- name: Setup PHP
27+
uses: shivammathur/setup-php@v2
28+
with:
29+
php-version: ${{ matrix.php }}
30+
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite
31+
coverage: none
32+
33+
- name: Install dependencies
34+
run: |
35+
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
36+
composer update --prefer-dist --no-interaction
37+
38+
- name: Execute tests
39+
run: vendor/bin/phpunit

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Laravel Nested Set
22

3+
[![Latest Version on Packagist](https://img.shields.io/packagist/v/indigoram89/laravel-nested-set.svg?style=flat-square)](https://packagist.org/packages/indigoram89/laravel-nested-set)
4+
[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/indigoram89/laravel-nested-set/tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/indigoram89/laravel-nested-set/actions?query=workflow%3Atests+branch%3Amain)
5+
[![Total Downloads](https://img.shields.io/packagist/dt/indigoram89/laravel-nested-set.svg?style=flat-square)](https://packagist.org/packages/indigoram89/laravel-nested-set)
6+
37
Пакет для управления иерархическими данными в Laravel с использованием паттерна Nested Set. Включает веб-интерфейс на Livewire 3 с поддержкой drag-and-drop.
48

59
## Требования

release.sh

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#!/bin/bash
2+
3+
# Скрипт для создания нового релиза
4+
# Использование: ./release.sh [major|minor|patch] "Описание релиза"
5+
6+
VERSION_TYPE=${1:-patch}
7+
RELEASE_MESSAGE=${2:-"Новый релиз"}
8+
9+
# Получаем текущую версию из composer.json
10+
CURRENT_VERSION=$(grep -o '"version": "[^"]*"' composer.json | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
11+
12+
if [ -z "$CURRENT_VERSION" ]; then
13+
echo "Не найдена версия в composer.json"
14+
exit 1
15+
fi
16+
17+
# Разбираем версию
18+
IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
19+
MAJOR=${VERSION_PARTS[0]}
20+
MINOR=${VERSION_PARTS[1]}
21+
PATCH=${VERSION_PARTS[2]}
22+
23+
# Увеличиваем версию
24+
case $VERSION_TYPE in
25+
major)
26+
MAJOR=$((MAJOR + 1))
27+
MINOR=0
28+
PATCH=0
29+
;;
30+
minor)
31+
MINOR=$((MINOR + 1))
32+
PATCH=0
33+
;;
34+
patch)
35+
PATCH=$((PATCH + 1))
36+
;;
37+
*)
38+
echo "Неверный тип версии. Используйте: major, minor или patch"
39+
exit 1
40+
;;
41+
esac
42+
43+
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
44+
45+
echo "Обновление версии с $CURRENT_VERSION на $NEW_VERSION"
46+
47+
# Обновляем версию в composer.json
48+
if [[ "$OSTYPE" == "darwin"* ]]; then
49+
# macOS
50+
sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$NEW_VERSION\"/" composer.json
51+
else
52+
# Linux
53+
sed -i "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$NEW_VERSION\"/" composer.json
54+
fi
55+
56+
# Коммитим изменения
57+
git add composer.json
58+
git commit -m "Обновление версии до $NEW_VERSION"
59+
60+
# Создаем тег
61+
git tag -a "v$NEW_VERSION" -m "$RELEASE_MESSAGE"
62+
63+
# Пушим изменения и теги
64+
git push origin main
65+
git push origin "v$NEW_VERSION"
66+
67+
echo "✅ Релиз v$NEW_VERSION создан и отправлен!"
68+
echo "📦 Packagist автоматически обновится через webhook"

0 commit comments

Comments
 (0)