name: Build and Create Tag Release on: push: branches: - master - main jobs: build: runs-on: tcl-tk-builder steps: - name: Клонирование run: | git clone "${{ vars.main_url }}${{ gitea.repository }}.git" . - name: Получение версии id: get_version run: | VERSION=$(grep "Version" projman.tcl | head -1 | grep -o '[0-9.]\+[a-zA-Z0-9]*' || echo "1.0.0") RELEASE=$(grep "# Release" projman.tcl | tail -1 | awk '{print $NF}' || echo "$(date +%Y%m%d)") # Создаем имя тега из версии TAG="v${VERSION}-${RELEASE}" echo "TAG=$TAG" >> $GITEA_ENV echo "VERSION=$VERSION" >> $GITEA_ENV echo "Будет создан тег: $TAG" - name: Создание тега в git run: | git config user.email "svk@nuk-svk.ru" git config user.name "svk" # Создаем тег локально git tag -a "$TAG" -m "Release $TAG" # Пушим тег на сервер git push origin "$TAG" - name: Сборка пакетов run: | cd debian && ./build-deb-projman.sh cd ../openbsd && ./build-package-bsd.sh echo "Собранные файлы:" ls -la projman* - name: Создание релиза с тегом run: | echo "Создаем релиз для тега: $TAG" curl -X POST \ -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \ -H "Content-Type: application/json" \ -d '{ "tag_name": "'"$TAG"'", "name": "Projman '"$VERSION"'", "body": "## Информация о сборке\n\n- Версия: '"$VERSION"'\n- Дата: '"$(date)"'\n- Коммит: '"$(git rev-parse --short HEAD)"'", "draft": false, "prerelease": false }' \ "${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases" - name: Загрузка файлов run: | # Загружаем все файлы projman* curl -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \ --upload-file "../projman_2.0.0-beta1_amd64.deb" \ "${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/tags/$TAG/assets?name=../projman_2.0.0-beta1_amd64.deb" curl -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \ --upload-file "../projman-2.0.0beta1.tgz" \ "${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/tags/$TAG/assets?name=../projman-2.0.0beta1.tgz"