Web Analytics

nothing-but-nix

⭐ 126 stars Russian by wimpysworld

🌐 Язык

Только Nix

Преобразуйте ваш GitHub Actions runner в Nix ❄️-мощь, безжалостно избавившись от предустановленного мусора.

GitHub Actions runner'ы предоставляют очень мало дискового пространства для Nix — всего около ~20ГБ. Nothing but Nix жестоко очищает ненужное ПО, предоставляя вам от 65ГБ до 130ГБ для вашего Nix store! 💪

Использование 🔧

Добавьте это действие до установки Nix в ваш workflow:

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
    steps:
      
  • uses: actions/checkout@v4
  • uses: wimpysworld/nothing-but-nix@main
  • name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
  • name: Run Nix
run: | nix --version # Your Nix-powered steps here...

Требования ️✔️

Проблема: Освободить место для Nix 🌱

Стандартные раннеры GitHub Actions переполнены "ненужным ПО", которое никогда не пригодится в Nix-воркфлоу:

Этот мусор оставляет лишь ~20ГБ для вашего Nix store — едва хватает для серьёзных сборок Nix! 😞

Решение: Только Nix ️❄️

Nothing but Nix применяет политику выжженной земли к раннерам GitHub Actions и безжалостно освобождает дисковое пространство с помощью двухфазной атаки:

Очистка файловой системы выполняется с помощью rmz (из проекта Fast Unix Commands (FUC)) — высокопроизводительной альтернативы rm, ускоряющей освобождение пространства! ⚡ Результат? Раннер GitHub Actions с 65ГБ до 130ГБ пространства, готового для Nix! 😁

Динамическое увеличение тома

В отличие от других решений, Nothing but Nix динамически увеличивает ваш том /nix:

Том /nix автоматически увеличивается во время выполнения воркфлоу 🎩🪄

Выберите своё оружие: Протокол Hatchet 🪓

Управляйте уровнем аннигиляции 💥 с помощью параметра hatchet-protocol:

- uses: wimpysworld/nothing-but-nix@main
  with:
    hatchet-protocol: 'cleave'  # Options: holster, carve, cleave (default), rampage

#### Сравнение протоколов ⚖️

| Протокол | /nix | Описание | Очистка apt | Очистка docker | Очистка snap | Очищенные файловые системы | |----------|--------|--------------------------------------------------|-------------|----------------|--------------|----------------------------| | Holster | ~65ГБ | Топор в ножнах, используем место с /mnt | Нет | Нет | Нет | Нет | | Carve | ~85ГБ | Объединяем свободное место с / и /mnt | Нет | Нет | Нет | Нет | | Cleave | ~115ГБ | Решительно удаляем крупные пакеты | Минимально | Да | Да | /opt и /usr/local | | Rampage | ~130ГБ | Безжалостно уничтожаем весь мусор | Агрессивно | Да | Да | Мухахаха! 🔥🌎 |

Выбирайте с умом:

Свидетельствуйте резню 🩸

По умолчанию процесс очистки выполняется тихо в фоновом режиме, пока ваш workflow продолжается. Но если хотите наблюдать за процессом в реальном времени:

- uses: wimpysworld/nothing-but-nix@main
  with:
    ️hatchet-protocol: 'cleave'
    witness-carnage: true  # Default: false

Настройте безопасные зоны 🛡️

Управляйте тем, сколько пространства выделять для защиты от захвата хранилища Nix, с помощью настраиваемых размеров безопасных зон:

- uses: wimpysworld/nothing-but-nix@main
  with:
    ️hatchet-protocol: 'cleave'
    root-safe-haven: '3072'   # Reserve 3GB on the / filesystem
    mnt-safe-haven: '2048'    # Reserve 2GB on the /mnt filesystem

Эти безопасные пороги определяют, сколько пространства (в МБ) будет милостиво сохранено при очистке пространства:

Увеличьте эти значения, если вам нужно больше свободного места на файловых системах, или уменьшите их, чтобы не оставлять пощады! 😈

Передача прав владения пользователю для /nix (Указ о правах Nix) 🧑‍⚖️

Некоторые установщики или конфигурации Nix ожидают, что каталог /nix будет доступен для записи текущему пользователю. По умолчанию /nix принадлежит root. Если вам нужно передать владение пользователю (например, для некоторых скриптов установки Nix, которые не используют sudo для всех операций в /nix), вы можете включить nix-permission-edict:

- uses: wimpysworld/nothing-but-nix@main
  with:
    nix-permission-edict: true  # Default: false

Когда параметр nix-permission-edict установлен в значение true, действие выполнит команду sudo chown -R "$(id --user)":"$(id --group)" /nix после монтирования /nix.

Теперь вперед, создавайте что-нибудь удивительное, используя всё это великолепное пространство хранилища Nix! ❄️ --- Tranlated By Open Ai Tx | Last indexed: 2025-07-24 ---