# .github/workflows/build.yml name: πŸš€ Build & Release on: # Запуск ΠΏΠΎ Ρ‚Π΅Π³Ρƒ: git tag v2.0 && git push origin v2.0 push: tags: - 'v*' # Π ΡƒΡ‡Π½ΠΎΠΉ запуск ΠΈΠ· Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Actions 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: # ───────────────────────────────────────── # 1️⃣ Checkout ΠΊΠΎΠ΄Π° # ───────────────────────────────────────── - name: πŸ“₯ Checkout repository uses: actions/checkout@v4 # ───────────────────────────────────────── # 2️⃣ Установка Python # ───────────────────────────────────────── - name: 🐍 Setup Python 3.10 uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' cache-dependency-path: 'requirements.txt' # ───────────────────────────────────────── # 3️⃣ Установка MSVC Build Tools (для Nuitka) # ───────────────────────────────────────── - name: πŸ”§ Install MSVC Build Tools uses: ilammy/msvc-dev-cmd@v1 with: toolset: 14.3 # VS 2022 # ───────────────────────────────────────── # 4️⃣ Установка зависимостСй # ───────────────────────────────────────── - name: πŸ“¦ Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install nuitka # ───────────────────────────────────────── # 5️⃣ Π‘Π±ΠΎΡ€ΠΊΠ° .exe Ρ‡Π΅Ρ€Π΅Π· 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 # ───────────────────────────────────────── # 6️⃣ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² # ───────────────────────────────────────── - 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 # ───────────────────────────────────────── # 7️⃣ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GitHub Release ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° .exe # ───────────────────────────────────────── - 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. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (откроСтся автоматичСски) 4. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ для скачивания ### ⚠️ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ - ВрСбуСтся подписка ЯндСкс.Плюс для качСства FLAC - ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС антивирус ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ β€” это Π»ΠΎΠΆΠ½ΠΎΠ΅ срабатываниС Π½Π° Python-прилоТСния - Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄: ${{ 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 }} # ───────────────────────────────────────── # 8️⃣ Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ # ───────────────────────────────────────── - name: βœ… Build complete run: | Write-Host "πŸŽ‰ Π‘Π±ΠΎΡ€ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°!" -ForegroundColor Green Write-Host "πŸ“¦ Π€Π°ΠΉΠ»: YandexMusicDownloader.exe" -ForegroundColor Cyan Write-Host "πŸ”— Π Π΅Π»ΠΈΠ·: ${{ github.server_url }}/${{ github.repository }}/releases" -ForegroundColor Yellow shell: pwsh