Skip to content

zxcnoname666/release-helper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Auto Release Deno GitHub Action

Deno Latest Release CI


✨ Описание

Auto Release — это GitHub Action на Deno, который:

  • 🔍 Анализирует коммиты на директивы !release: major/minor/patch и !breaking
  • ⚙️ Запускает команду линтинга и тестов через инпут LINT_AND_TESTS_COMMAND
  • 📦 Собирает проект через команду BUILD_COMMAND
  • 🏷️ Создаёт SemVer-тег и релиз в GitHub
  • 📝 Генерирует CHANGELOG + AI-резюме (через OpenAI) ✍️
  • 📂 Загружает артефакты по glob-шаблонам из ASSET_PATTERNS
  • 📣 Отправляет уведомления в Discord через Webhook 💬

📥 Установка

Добавьте шаг в свой workflow:

- name: Auto Release 🚀
  uses: Shiro-nn/release-helper@master
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    # Сборка проекта
    BUILD_COMMAND: "deno task build"
    # Линт и тесты
    LINT_AND_TESTS_COMMAND: "deno lint && deno test"
    # Шаблоны артефактов
    ASSET_PATTERNS: "dist/**/*.zip dist/**/*.tar.gz"
    # Настройка ветки и релиза
    ALLOWED_BRANCH: "main"
    DRAFT_RELEASE: "false"
    PRERELEASE: "false"
    # Discord уведомления
    DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}

⚙️ Inputs

🏷️ Параметр Обязателен По умолчанию Описание
GITHUB_TOKEN Токен GitHub для тегов, релиза и загрузки артефактов
LINT_AND_TESTS_COMMAND — (deno lint && deno test) Команда для линтинга и тестов
BUILD_COMMAND — (deno task build) Команда сборки проекта
ASSET_PATTERNS Glob‑шаблоны файлов‑артефактов для релиза (напр. dist/**/*.zip)
OPENAI_API_KEY Ключ OpenAI для AI‑резюме
OPENAI_API_MODEL gpt-4 Модель OpenAI
OPENAI_API_BASE_URL https://api.openai.com/v1/ Endpoint Chat Completions API
ALLOWED_BRANCH main Разрешённая ветка для релизов
DRAFT_RELEASE false Создавать черновик релиза?
PRERELEASE false Помечать как prerelease?
DISCORD_WEBHOOK URL Discord Webhook для уведомлений

Совет: если у вас нет линтинга или тестов — оставьте LINT_AND_TESTS_COMMAND пустым. Action пропустит этот шаг.


🚀 Quick Start

name: Release
on:
  push:
    branches: [main]

permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: denoland/setup-deno@v2
        with:
          cache: true
      - name: Auto Release
        uses: Shiro-nn/release-helper@master
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BUILD_COMMAND: "deno task build"
          LINT_AND_TESTS_COMMAND: "deno lint && deno test"
          ASSET_PATTERNS: "dist/**/*.zip"
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}

🔧 Как это работает

  1. 📂 Проверка окружения

    • Убедиться, что рабочая директория чиста и текущая ветка соответствует ALLOWED_BRANCH.
  2. 🔍 Анализ коммита

    • Поиск директивы !release: major/minor/patch или !breaking в сообщении последнего коммита.
  3. 📈 SemVer bump

    • Вычисление новой версии на основании последнего релизного тега и типа релиза.
  4. Lint & Test

    • Выполнение команды из LINT_AND_TESTS_COMMAND (например, deno lint && deno test).
  5. 🛠️ Сборка проекта

    • Выполнение BUILD_COMMAND (например, deno task build).
  6. 🏷️ Создание тега и релиза

    • Создать git-тег и GitHub Release с опциями DRAFT_RELEASE/PRERELEASE.
  7. 📝 CHANGELOG & AI-сводка

    • Сформировать список изменений и сгенерировать AI-краткое резюме через OpenAI (при наличии OPENAI_API_KEY).
  8. 📂 Загрузка артефактов

    • Загрузить все файлы, соответствующие шаблонам из ASSET_PATTERNS.
  9. 📣 Уведомление в Discord

    • Отправить POST-запрос на URL из DISCORD_WEBHOOK с телом { "content": "..." }.

🧑‍🔬 Демо-репозиторий

⚠️ Shiro-nn/test-releasesсырая демонстрация работы действия без дополнительной полировки интерфейса.


🔗 Другие полезные Actions

Action Описание
AI Commit Fixer 🛠️ Автоматическое исправление сообщений коммитов по Conventional Commits с помощью ИИ
AI Code Reviewer 👀 Автоматическое ревью Pull Requests с рекомендациями от ИИ

📄 Лицензия

MIT License — см. файл LICENSE для подробностей.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%