diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e2e4f3a..3350fda 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,10 +4,9 @@ on: push: tags: - 'v*' - workflow_dispatch: # Позволяет запускать вручную + workflow_dispatch: jobs: - # Шаг 1: Валидация структуры HA интеграции validate: name: Validate Integration runs-on: ubuntu-latest @@ -23,7 +22,6 @@ jobs: with: category: "integration" - # Шаг 2: Запуск тестов (если есть) test: name: Run Tests runs-on: ubuntu-latest @@ -51,7 +49,6 @@ jobs: echo "No tests directory found, skipping tests" fi - # Шаг 3: Проверка стиля кода lint: name: Code Quality runs-on: ubuntu-latest @@ -77,7 +74,6 @@ jobs: run: | ruff check custom_components/motion_light/ || echo "Ruff issues found" - # Шаг 4: Создание релиза (только если все проверки пройдены) release: name: Create Release runs-on: ubuntu-latest @@ -97,6 +93,15 @@ jobs: TAG=${GITHUB_REF#refs/tags/} echo "tag=$TAG" >> $GITHUB_OUTPUT + # Проверяем, это beta или stable релиз + if [[ "$TAG" == *"beta"* ]]; then + echo "is_beta=true" >> $GITHUB_OUTPUT + PRERELEASE_FLAG="--prerelease" + else + echo "is_beta=false" >> $GITHUB_OUTPUT + PRERELEASE_FLAG="" + fi + PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") if [ -z "$PREV_TAG" ]; then @@ -115,18 +120,26 @@ jobs: run: | TAG="${{ steps.tag.outputs.tag }}" COMMITS="${{ steps.tag.outputs.commits }}" + IS_BETA="${{ steps.tag.outputs.is_beta }}" echo "🚀 Создаём релиз $TAG в GitHub..." + if [ "$IS_BETA" = "true" ]; then + TITLE="Beta Release $TAG" + else + TITLE="Release $TAG" + fi + cat > /tmp/release_notes.md << EOF - ## Изменения в версии $TAG + ## $TITLE $COMMITS EOF gh release create "$TAG" \ - --title "Release $TAG" \ + --title "$TITLE" \ --notes-file /tmp/release_notes.md \ - --target main + --target main \ + ${IS_BETA:+--prerelease} echo "✅ Релиз создан!" \ No newline at end of file