Files
projman/.gitea/workflows/build.yml
svk 08ba3678f8
Some checks failed
Сборка Projman / build (push) Failing after 16s
Тесты сборки
2026-01-22 20:46:48 +03:00

146 lines
5.8 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]
jobs:
build:
runs-on: tcl-tk-builder
steps:
- name: Клонирование репозитория
run: |
git clone "${{ vars.main_url }}${{ gitea.repository }}.git" .
echo "Ревизия: $(git rev-parse --short HEAD)"
- name: Сборка пакетов
run: |
echo "=== Сборка DEB пакета ==="
cd debian
./build-deb-projman.sh
echo "=== Сборка OpenBSD пакета ==="
cd ../openbsd
./build-package-bsd.sh
echo "=== Список созданных файлов ==="
cd ..
find . -name "*.deb" -o -name "*.tgz" -o -name "*.changes" | xargs ls -la
- name: Извлечение версии
id: version_info
run: |
VERSION=$(grep "Version" projman.tcl | head -1 | grep -o '[0-9.]\+[a-zA-Z0-9]*')
RELEASE=$(grep "# Release" projman.tcl | tail -1 | awk '{print $NF}')
TAG_NAME="${GITEA_REF#refs/tags/}"
echo "VERSION=${VERSION}" >> $GITEA_ENV
echo "RELEASE=${RELEASE}" >> $GITEA_ENV
echo "TAG_NAME=${TAG_NAME}" >> $GITEA_ENV
echo "Версия: $VERSION"
echo "Ревизия: $RELEASE"
echo "Тег: $TAG_NAME"
- name: Создание релиза
run: |
echo "=== Создание релиза $TAG_NAME ==="
# Ищем основной DEB пакет (бинарный)
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"
# Создаем тело релиза
RELEASE_BODY="Версия: $VERSION
Ревизия: $RELEASE
Дата сборки: $(date)
Доступные пакеты:
- $(basename "$DEB_FILE") (Debian/Ubuntu)
- $(basename "$TGZ_FILE") (OpenBSD)
Собран из ревизии: $(git rev-parse --short HEAD)"
# Создаем релиз
RESPONSE=$(curl -s -X POST \
-u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{
"tag_name": "'"$TAG_NAME"'",
"name": "Projman '"$VERSION"'",
"body": "'"$(echo "$RELEASE_BODY" | sed ':a;N;$!ba;s/\n/\\n/g')"'",
"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 "Ошибка создания релиза!"
exit 1
fi
- name: Загрузка DEB пакета
if: env.REL_ID != ''
run: |
DEB_FILE=$(find . -name "*_amd64.deb" -type f | head -1)
if [ -f "$DEB_FILE" ]; then
echo "Загружаем DEB: $(basename "$DEB_FILE")"
curl -v --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
--upload-file "$DEB_FILE" \
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$(basename "$DEB_FILE")"
else
echo "DEB файл не найден!"
find . -name "*.deb" -type f
fi
- name: Загрузка OpenBSD пакета
if: env.REL_ID != ''
run: |
TGZ_FILE=$(find . -name "*.tgz" -type f | head -1)
if [ -f "$TGZ_FILE" ]; then
echo "Загружаем TGZ: $(basename "$TGZ_FILE")"
curl -v --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
--upload-file "$TGZ_FILE" \
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$(basename "$TGZ_FILE")"
else
echo "TGZ файл не найден!"
find . -name "*.tgz" -type f
fi
- name: Загрузка дополнительных файлов
if: env.REL_ID != ''
run: |
# Загружаем .changes файл
CHANGES_FILE=$(find . -name "*.changes" -type f | head -1)
if [ -f "$CHANGES_FILE" ]; then
echo "Загружаем changes: $(basename "$CHANGES_FILE")"
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
--upload-file "$CHANGES_FILE" \
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$(basename "$CHANGES_FILE")"
fi
# Загружаем .buildinfo файл
BUILDINFO_FILE=$(find . -name "*.buildinfo" -type f | head -1)
if [ -f "$BUILDINFO_FILE" ]; then
echo "Загружаем buildinfo: $(basename "$BUILDINFO_FILE")"
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
--upload-file "$BUILDINFO_FILE" \
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$(basename "$BUILDINFO_FILE")"
fi
- name: Итоговый отчет
run: |
echo "=== Сборка завершена ==="
echo "Тег: $TAG_NAME"
echo "Версия: $VERSION"
echo "Созданные файлы:"
find . -name "projman*" -type f | xargs ls -la