working on the article
This commit is contained in:
15
cert.yaml
Normal file
15
cert.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
name: root-somedomain-ru
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
commonName: somedomain.ru
|
||||||
|
dnsNames:
|
||||||
|
- somedomain.ru
|
||||||
|
- www.somedomain.ru
|
||||||
|
issuerRef:
|
||||||
|
kind: ClusterIssuer
|
||||||
|
name: letsencrypt-dns-cloudflare
|
||||||
|
secretName: le-root-somedomain-ru
|
1497
docs/gitea-actions-guide.md
Normal file
1497
docs/gitea-actions-guide.md
Normal file
File diff suppressed because it is too large
Load Diff
12
makefile
12
makefile
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: build clean test
|
.PHONY: build clean test release
|
||||||
|
|
||||||
BIN_DIR=bin
|
BIN_DIR=bin
|
||||||
APP_NAME=hello-api
|
APP_NAME=hello-api
|
||||||
@@ -13,3 +13,13 @@ clean:
|
|||||||
|
|
||||||
test:
|
test:
|
||||||
go test -v ./...
|
go test -v ./...
|
||||||
|
|
||||||
|
# Задача для создания релиза
|
||||||
|
# Использование: make release VERSION=1.0.25
|
||||||
|
release:
|
||||||
|
# @if [ -z "$(VERSION)" ]; then \
|
||||||
|
# echo "Ошибка: Необходимо указать версию"; \
|
||||||
|
# echo "Использование: make release VERSION=1.0.25"; \
|
||||||
|
# exit 1; \
|
||||||
|
# fi
|
||||||
|
@./scripts/release-interactive.sh $(VERSION)
|
114
scripts/release-interactive.sh
Executable file
114
scripts/release-interactive.sh
Executable file
@@ -0,0 +1,114 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Интерактивный скрипт для автоматизации релиза
|
||||||
|
# Использование: ./scripts/release-interactive.sh [version]
|
||||||
|
# Если версия не указана, скрипт запросит её интерактивно
|
||||||
|
|
||||||
|
set -e # Остановить выполнение при ошибке
|
||||||
|
|
||||||
|
# Функция для получения версии интерактивно
|
||||||
|
get_version_interactive() {
|
||||||
|
echo "🚀 Создание нового релиза"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Показываем текущую версию
|
||||||
|
CURRENT_VERSION=$(grep 'const version = "' main.go | sed 's/const version = "\([^"]*\)"/\1/')
|
||||||
|
echo "📋 Текущая версия: $CURRENT_VERSION"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Запрашиваем новую версию
|
||||||
|
read -p "Введите новую версию (формат X.Y.Z): " VERSION
|
||||||
|
|
||||||
|
# Проверяем, что версия не пустая
|
||||||
|
if [ -z "$VERSION" ]; then
|
||||||
|
echo "❌ Версия не может быть пустой"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверяем формат версии
|
||||||
|
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "❌ Неверный формат версии. Используйте формат X.Y.Z (например, 1.0.25)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Подтверждение
|
||||||
|
echo ""
|
||||||
|
echo "📝 Подтверждение:"
|
||||||
|
echo " Текущая версия: $CURRENT_VERSION"
|
||||||
|
echo " Новая версия: $VERSION"
|
||||||
|
echo ""
|
||||||
|
read -p "Продолжить? (y/N): " CONFIRM
|
||||||
|
|
||||||
|
if [[ ! $CONFIRM =~ ^[Yy]$ ]]; then
|
||||||
|
echo "❌ Релиз отменен"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Проверяем, передана ли версия как аргумент
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
# Версия не указана, запрашиваем интерактивно
|
||||||
|
get_version_interactive
|
||||||
|
else
|
||||||
|
# Версия указана как аргумент
|
||||||
|
VERSION=$1
|
||||||
|
|
||||||
|
# Проверка формата версии
|
||||||
|
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "Ошибка: Неверный формат версии. Используйте формат X.Y.Z (например, 1.0.25)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🚀 Начинаем релиз версии v$VERSION..."
|
||||||
|
|
||||||
|
# Проверяем, что мы в git репозитории
|
||||||
|
if ! git rev-parse --git-dir > /dev/null 2>&1; then
|
||||||
|
echo "Ошибка: Не найден git репозиторий"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверяем, что нет незакоммиченных изменений
|
||||||
|
# if ! git diff-index --quiet HEAD --; then
|
||||||
|
# echo "Ошибка: Есть незакоммиченные изменения. Сначала закоммитьте их."
|
||||||
|
# exit 1
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Обновляем версию в main.go
|
||||||
|
echo "📝 Обновляем версию в main.go..."
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
# macOS
|
||||||
|
sed -i '' "s/const version = \"[^\"]*\"/const version = \"$VERSION\"/" main.go
|
||||||
|
else
|
||||||
|
# Linux
|
||||||
|
sed -i "s/const version = \"[^\"]*\"/const version = \"$VERSION\"/" main.go
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверяем, что изменение применилось
|
||||||
|
if ! grep -q "const version = \"$VERSION\"" main.go; then
|
||||||
|
echo "Ошибка: Не удалось обновить версию в main.go"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ Версия обновлена в main.go"
|
||||||
|
|
||||||
|
# Выполняем git команды
|
||||||
|
echo "📦 Добавляем изменения в git..."
|
||||||
|
git add .
|
||||||
|
|
||||||
|
echo "💾 Создаем коммит..."
|
||||||
|
git commit -m "Release v$VERSION"
|
||||||
|
|
||||||
|
echo "🏷️ Создаем тег..."
|
||||||
|
git tag -a "v$VERSION" -m "Release v$VERSION"
|
||||||
|
|
||||||
|
echo "🚀 Отправляем изменения и теги..."
|
||||||
|
git push
|
||||||
|
git push --tags
|
||||||
|
|
||||||
|
echo "🎉 Релиз v$VERSION успешно завершен!"
|
||||||
|
echo "📋 Выполненные действия:"
|
||||||
|
echo " - Обновлена версия в main.go"
|
||||||
|
echo " - Создан коммит с сообщением 'Release v$VERSION'"
|
||||||
|
echo " - Создан тег v$VERSION"
|
||||||
|
echo " - Изменения отправлены в удаленный репозиторий"
|
76
scripts/release.sh
Executable file
76
scripts/release.sh
Executable file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Скрипт для автоматизации релиза
|
||||||
|
# Использование: ./scripts/release.sh <version>
|
||||||
|
# Пример: ./scripts/release.sh 1.0.25
|
||||||
|
|
||||||
|
set -e # Остановить выполнение при ошибке
|
||||||
|
|
||||||
|
# Проверка аргументов
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Ошибка: Необходимо указать версию"
|
||||||
|
echo "Использование: $0 <version>"
|
||||||
|
echo "Пример: $0 1.0.25"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERSION=$1
|
||||||
|
|
||||||
|
# Проверка формата версии (простая проверка)
|
||||||
|
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "Ошибка: Неверный формат версии. Используйте формат X.Y.Z (например, 1.0.25)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🚀 Начинаем релиз версии v$VERSION..."
|
||||||
|
|
||||||
|
# Проверяем, что мы в git репозитории
|
||||||
|
if ! git rev-parse --git-dir > /dev/null 2>&1; then
|
||||||
|
echo "Ошибка: Не найден git репозиторий"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверяем, что нет незакоммиченных изменений
|
||||||
|
if ! git diff-index --quiet HEAD --; then
|
||||||
|
echo "Ошибка: Есть незакоммиченные изменения. Сначала закоммитьте их."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Обновляем версию в main.go
|
||||||
|
echo "📝 Обновляем версию в main.go..."
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
# macOS
|
||||||
|
sed -i '' "s/const version = \"[^\"]*\"/const version = \"$VERSION\"/" main.go
|
||||||
|
else
|
||||||
|
# Linux
|
||||||
|
sed -i "s/const version = \"[^\"]*\"/const version = \"$VERSION\"/" main.go
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверяем, что изменение применилось
|
||||||
|
if ! grep -q "const version = \"$VERSION\"" main.go; then
|
||||||
|
echo "Ошибка: Не удалось обновить версию в main.go"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ Версия обновлена в main.go"
|
||||||
|
|
||||||
|
# Выполняем git команды
|
||||||
|
echo "📦 Добавляем изменения в git..."
|
||||||
|
git add .
|
||||||
|
|
||||||
|
echo "💾 Создаем коммит..."
|
||||||
|
git commit -m "Release v$VERSION"
|
||||||
|
|
||||||
|
echo "🏷️ Создаем тег..."
|
||||||
|
git tag -a "v$VERSION" -m "Release v$VERSION"
|
||||||
|
|
||||||
|
echo "🚀 Отправляем изменения и теги..."
|
||||||
|
git push
|
||||||
|
git push --tags
|
||||||
|
|
||||||
|
echo "🎉 Релиз v$VERSION успешно завершен!"
|
||||||
|
echo "📋 Выполненные действия:"
|
||||||
|
echo " - Обновлена версия в main.go"
|
||||||
|
echo " - Создан коммит с сообщением 'Release v$VERSION'"
|
||||||
|
echo " - Создан тег v$VERSION"
|
||||||
|
echo " - Изменения отправлены в удаленный репозиторий"
|
Reference in New Issue
Block a user