release-examples

0
README.md

📦 release-examples

Этот репозиторий демонстрирует примеры для автоматической сборки и публикации релизов Go-приложений с поддержкой нескольких платформ.

Используется в качестве шаблона для команд, выпускающих CLI-утилиты, агенты или десктопные приложения.


🛠️ Возможности

  • Сборка бинарников под 4 платформы:
    • Windows (
      amd64
      )
    • Linux (
      amd64
      )
    • macOS (
      amd64
      ,
      arm64
      )
  • Автоматическое вшитие версии через
    -ldflags
  • Упаковка каждого бинарника в отдельный
    .tar.gz
    архив
  • Публикация релиза в GitVerse при создании тега
  • Ручной запуск тестовых сборок через workflow_dispatch

🔄 CI/CD Workflows

1.
build_binary.yaml

  • Триггер: ручной запуск
  • Назначение: сборка и архивация бинарников с заданной версией
  • Особенности:
    • Поддержка кастомной версии через input
    • Настраиваемый срок хранения артефактов (1–30 дней)

2.
release.yaml

  • Триггер: пуш тега (например,
    v1.2.3
    )
  • Назначение: выпуск официального релиза
  • Что делает:
    • Собирает и архивирует бинарники
    • Загружает артефакты
    • Создаёт релиз в GitVerse через REST API с changelog

📁 Структура артефактов

Каждый релиз содержит следующие файлы:

  • server_windows_amd64.tar.gz → server_windows_amd64.exe
  • server_linux_amd64.tar.gz → server_linux_amd64
  • server_darwin_arm64.tar.gz → server_darwin_arm64
  • server_darwin_amd64.tar.gz → server_darwin_amd64

Архивы:

  • Самодостаточны (один бинарник на архив)
  • Стандартного формата (
    .tar.gz
    )
  • Готовы к распространению и установке

🚀 Как использовать

  1. Создайте тег в формате

    vX.Y.Z
    :

  2. Workflow автоматически:

  • Соберёт бинарники
  • Загрузит их как артефакы
  • Опубликует релиз в GitVerse
  • Для тестовых сборок запустите workflow вручную через UI и укажите желаемую версию.

💡 Проект совместим с GitVerse CI/CD и может быть адаптирован под другие платформы (GitHub, GitLab и др.).