Files
projman/.gitea/workflows/build.yml
2026-01-22 20:50:36 +03:00

118 lines
4.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Сборка Projman
on:
push:
tags:
- '*'
jobs:
build:
runs-on: tcl-tk-builder
steps:
- name: Клонирование репозитория
run: |
echo "GITEA_REF = $GITEA_REF"
echo "Полный URL: ${{ vars.main_url }}${{ gitea.repository }}.git"
git clone "${{ vars.main_url }}${{ gitea.repository }}.git" .
# Получаем имя тега из git
TAG_NAME=$(git describe --tags --exact-match 2>/dev/null || echo "")
echo "Тег из git: $TAG_NAME"
echo "TAG_NAME=$TAG_NAME" >> $GITEA_ENV
- name: Сборка пакетов
run: |
echo "=== Сборка DEB пакета ==="
cd debian
./build-deb-projman.sh
echo "=== Сборка OpenBSD пакета ==="
cd ../openbsd
./build-package-bsd.sh
echo "=== Список созданных файлов ==="
cd ..
find . -name "*_amd64.deb" -o -name "*.tgz" -o -name "*.changes" | xargs ls -la 2>/dev/null || true
- name: Поиск файлов
id: find_files
run: |
DEB_FILE=$(find . -name "*_amd64.deb" -type f | head -1)
TGZ_FILE=$(find . -name "*.tgz" -type f | head -1)
echo "Найден DEB: $DEB_FILE"
echo "Найден TGZ: $TGZ_FILE"
echo "DEB_FILE=$DEB_FILE" >> $GITEA_ENV
echo "TGZ_FILE=$TGZ_FILE" >> $GITEA_ENV
- name: Извлечение версии
id: version_info
run: |
VERSION=$(grep "Version" projman.tcl | head -1 | grep -o '[0-9.]\+[a-zA-Z0-9]*' || echo "unknown")
RELEASE=$(grep "# Release" projman.tcl | tail -1 | awk '{print $NF}' || echo "unknown")
echo "VERSION=${VERSION}" >> $GITEA_ENV
echo "RELEASE=${RELEASE}" >> $GITEA_ENV
echo "Версия: $VERSION"
echo "Ревизия: $RELEASE"
- name: Создание релиза
run: |
echo "=== Создание релиза ==="
echo "TAG_NAME из env: $TAG_NAME"
if [ -z "$TAG_NAME" ]; then
echo "ОШИБКА: TAG_NAME пустой!"
echo "Пытаемся получить тег из git..."
TAG_NAME=$(git describe --tags --exact-match 2>/dev/null)
echo "Тег из git: $TAG_NAME"
if [ -z "$TAG_NAME" ]; then
echo "Не удалось получить имя тега. Используем версию из projman.tcl"
TAG_NAME="v$VERSION"
fi
fi
echo "Будет использован тег: $TAG_NAME"
# Создаем релиз
RESPONSE=$(curl -s -X POST \
-u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{
"tag_name": "'"$TAG_NAME"'",
"name": "Projman '"$TAG_NAME"'",
"body": "Автоматический релиз\n\nВерсия: '"$VERSION"'\nРевизия: '"$RELEASE"'",
"draft": false,
"prerelease": false
}' \
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases")
echo "Ответ API: $RESPONSE"
# Извлекаем ID релиза
if echo "$RESPONSE" | grep -q '"id"'; then
REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2)
echo "ID релиза: $REL_ID"
echo "REL_ID=$REL_ID" >> $GITEA_ENV
else
echo "Ошибка создания релиза:"
echo "$RESPONSE"
exit 1
fi
- name: Загрузка файлов в релиз
if: env.REL_ID != ''
run: |
echo "=== Загрузка файлов ==="
# Загружаем все файлы projman
for FILE in $(find . -maxdepth 1 -name "projman*" -type f); do
echo "Загружаем: $(basename "$FILE")"
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
--upload-file "$FILE" \
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$(basename "$FILE")"
echo "OK"
done