# .github/workflows/build.yml name: 🚀 Build & Release on: push: tags: - 'v*' workflow_dispatch: inputs: version: description: 'Version tag (e.g., v2.0.1)' required: true default: 'v2.0.1' permissions: contents: write jobs: build-windows: name: 🪟 Build on Windows runs-on: windows-latest steps: - name: 📥 Checkout uses: actions/checkout@v4 - name: 🐍 Setup Python 3.10 uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' cache-dependency-path: 'requirements.txt' # 🔧 FIX: MSVC setup без явного toolset — автоопределение - name: 🔧 Setup MSVC environment uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 # toolset убран — автоопределение работает надёжнее - name: 📦 Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install nuitka - name: 🛠️ Compile with Nuitka run: | nuitka ` --standalone ` --onefile ` --windows-console-mode=force ` --remove-output ` --assume-yes-for-downloads ` --include-package=yandex_music,aiohttp,aiofiles ` --nofollow-import-to=pytest,setuptools,pip,wheel ` --python-flag=no_site ` --output-filename=YandexMusicDownloader.exe ` --windows-file-version=${{ github.ref_name || github.event.inputs.version }}.0 ` --windows-product-version=${{ github.ref_name || github.event.inputs.version }}.0 ` --windows-company-name="KromSystems" ` --windows-product-name="Yandex Music Downloader" ` --windows-file-description="Download tracks from Yandex Music in maximum quality" ` --copyright="© 2026 KromSystems. Powered by J.A.R.V.I.S. core" ` --windows-app-name="YandexMusicDownloader" ` main.py shell: pwsh - name: 📦 Prepare release assets run: | mkdir release-assets Copy-Item "dist\YandexMusicDownloader.exe" "release-assets\" Copy-Item "README.md" "release-assets\" Copy-Item "LICENSE" "release-assets\" -ErrorAction SilentlyContinue shell: pwsh - name: 🚀 Create Release uses: softprops/action-gh-release@v2 with: name: "🎵 Yandex Music Downloader ${{ github.ref_name || github.event.inputs.version }}" body: | ## 🤖 Yandex Music Downloader ${{ github.ref_name || github.event.inputs.version }} ### ✨ Особенности - ⚡ Асинхронная загрузка через `yandex-music-api` - 🎨 Интерфейс в стиле Тони Старка (StarkUI) - 🔐 Токен вводится вручную — не сохраняется - 🛠️ Скомпилировано через Nuitka ### 📥 Использование 1. Скачайте `YandexMusicDownloader.exe` 2. Запустите → получите токен (браузер откроется автоматически) 3. Вставьте токен и укажите папку ### ⚠️ Примечания - Требуется Яндекс.Плюс для FLAC - Ложные срабатывания антивирусов — отправляйте файл на проверку в Microsoft [Исходный код](${{ github.server_url }}/${{ github.repository }}) --- *Powered by J.A.R.V.I.S. core • © 2026 KromSystems* files: | release-assets/YandexMusicDownloader.exe release-assets/README.md release-assets/LICENSE draft: false prerelease: false make_latest: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: ✅ Build complete run: | Write-Host "🎉 Сборка завершена!" -ForegroundColor Green Write-Host "📦 Файл: YandexMusicDownloader.exe" -ForegroundColor Cyan shell: pwsh