This commit is contained in:
@@ -5,64 +5,141 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: tcl-tk-builder
|
runs-on: tcl-tk-builder
|
||||||
steps:
|
steps:
|
||||||
- name: Клонирование
|
- name: Клонирование репозитория
|
||||||
run: |
|
run: |
|
||||||
git clone "${{ vars.main_url }}${{ gitea.repository }}.git" src
|
git clone "${{ vars.main_url }}${{ gitea.repository }}.git" .
|
||||||
pwd
|
echo "Ревизия: $(git rev-parse --short HEAD)"
|
||||||
|
|
||||||
- name: Сборка пакетов
|
- name: Сборка пакетов
|
||||||
run: |
|
run: |
|
||||||
cd src
|
echo "=== Сборка DEB пакета ==="
|
||||||
echo "=== Сборка DEB ==="
|
|
||||||
cd debian
|
cd debian
|
||||||
./build-deb-projman.sh
|
./build-deb-projman.sh
|
||||||
|
|
||||||
echo "=== Сборка OpenBSD ==="
|
echo "=== Сборка OpenBSD пакета ==="
|
||||||
cd ../openbsd
|
cd ../openbsd
|
||||||
./build-package-bsd.sh
|
./build-package-bsd.sh
|
||||||
|
|
||||||
echo "=== Собранные файлы ==="
|
echo "=== Список созданных файлов ==="
|
||||||
cd ../..
|
cd ..
|
||||||
find src -name "*.deb" -o -name "*.tgz" | xargs ls -la
|
find . -name "*.deb" -o -name "*.tgz" -o -name "*.changes" | xargs ls -la
|
||||||
|
|
||||||
- name: Извлечение версии
|
- name: Извлечение версии
|
||||||
id: get_version
|
id: version_info
|
||||||
run: |
|
run: |
|
||||||
cd src
|
VERSION=$(grep "Version" projman.tcl | head -1 | grep -o '[0-9.]\+[a-zA-Z0-9]*')
|
||||||
VERSION=$(grep "Version" projman.tcl | head -1 | grep -o '[0-9.]\+')
|
|
||||||
RELEASE=$(grep "# Release" projman.tcl | tail -1 | awk '{print $NF}')
|
RELEASE=$(grep "# Release" projman.tcl | tail -1 | awk '{print $NF}')
|
||||||
echo "version=$VERSION" >> $GITEA_OUTPUT
|
|
||||||
echo "release=$RELEASE" >> $GITEA_OUTPUT
|
|
||||||
|
|
||||||
- name: Создание релиза для тегов
|
|
||||||
if: startsWith(gitea.ref, 'refs/tags/')
|
|
||||||
run: |
|
|
||||||
cd src
|
|
||||||
TAG_NAME="${GITEA_REF#refs/tags/}"
|
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 ==="
|
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 \
|
RESPONSE=$(curl -s -X POST \
|
||||||
-u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
-u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{
|
-d '{
|
||||||
"tag_name": "'"$TAG_NAME"'",
|
"tag_name": "'"$TAG_NAME"'",
|
||||||
"name": "Projman '"$TAG_NAME"'",
|
"name": "Projman '"$VERSION"'",
|
||||||
"body": "Версия: '"$VERSION"'\nРевизия: '"$RELEASE"'",
|
"body": "'"$(echo "$RELEASE_BODY" | sed ':a;N;$!ba;s/\n/\\n/g')"'",
|
||||||
"draft": false
|
"draft": false,
|
||||||
|
"prerelease": false
|
||||||
}' \
|
}' \
|
||||||
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases")
|
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases")
|
||||||
|
|
||||||
echo "Ответ: $RESPONSE"
|
echo "Ответ API: $RESPONSE"
|
||||||
|
|
||||||
# Извлекаем ID релиза
|
# Извлекаем ID релиза
|
||||||
REL_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | cut -d: -f2)
|
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 файл
|
||||||
for FILE in $(find . -name "projman*" -type f \( -name "*.deb" -o -name "*.tgz" \)); do
|
BUILDINFO_FILE=$(find . -name "*.buildinfo" -type f | head -1)
|
||||||
echo "Загружаем: $FILE"
|
if [ -f "$BUILDINFO_FILE" ]; then
|
||||||
curl -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
echo "Загружаем buildinfo: $(basename "$BUILDINFO_FILE")"
|
||||||
--upload-file "$FILE" \
|
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
||||||
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/$REL_ID/assets?name=$(basename $FILE)"
|
--upload-file "$BUILDINFO_FILE" \
|
||||||
done
|
"${{ 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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user