Web Analytics

nothing-but-nix

⭐ 213 stars Spanish by wimpysworld

🌐 Idioma

Nada más que Nix

Transforma tu runner de GitHub Actions en una potencia Nix ❄️ eliminando sin piedad el software preinstalado innecesario.

Los runners de GitHub Actions vienen con un espacio en disco escaso para Nix: apenas ~20GB. Nada más que Nix elimina brutalmente el software innecesario, ¡dándote 65GB a 130GB para tu Nix store! 💪

Uso 🔧

Agrega esta acción antes de instalar Nix en tu flujo de trabajo:

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...

Requisitos ️✔️

El Problema: Haciendo Espacio para que Nix Prospera 🌱

Los runners estándar de GitHub Actions están llenos de "bloatware" que nunca usarás en un flujo de trabajo Nix:

Este exceso deja solo ~20GB para tu Nix store - ¡apenas suficiente para builds serios de Nix! 😞

La Solución: Nada Más que Nix ️❄️

Nada Más que Nix adopta un enfoque radical sobre los runners de GitHub Actions y recupera espacio en disco sin piedad usando un ataque en dos fases:

La purga del sistema de archivos está impulsada por rmz (del proyecto Fast Unix Commands (FUC)) - una alternativa de alto rendimiento a rm que hace la recuperación de espacio súper rápida ⚡ ¿El resultado final? ¡Un runner de GitHub Actions con 65GB a 130GB de espacio listo para Nix! 😁

Crecimiento Dinámico de Volumen

A diferencia de otras soluciones, Nada más que Nix hace que tu volumen /nix crezca dinámicamente:

El volumen /nix crece automáticamente durante la ejecución del flujo de trabajo 🎩🪄

Elige tu arma: El Protocolo Hatchet 🪓

Controla el nivel de aniquilación 💥 con la entrada hatchet-protocol:

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

#### Comparación de Protocolos ⚖️

| Protocolo | /nix | Descripción | Purgar apt | Purgar docker | Purgar snap | Sistemas de archivos purgados | |-----------|--------|--------------------------------------------------|-------------|---------------|-------------|-----------------------------------| | Holster | ~65GB | Mantén el hacha envainada, usa espacio de /mnt | No | No | No | Ninguno | | Carve | ~85GB | Fabrica y combina espacio libre de / y /mnt | No | No | No | Ninguno | | Cleave | ~115GB | Haz cortes potentes y decisivos a paquetes grandes| Mínimo | Sí | Sí | /opt y /usr/local | | Rampage | ~130GB | Eliminación implacable y brutal de todo el bloat | Agresivo | Sí | Sí | ¡Muajajaja! 🔥🌎 |

Elige sabiamente:

Sé Testigo de la Carnicería 🩸

Por defecto, el proceso de purga se ejecuta silenciosamente en segundo plano mientras tu flujo de trabajo continúa. Pero si quieres ver la masacre en tiempo real:

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

Personaliza Refugios Seguros 🛡️

Controla cuánto espacio reservar del acaparamiento de la tienda Nix con tamaños personalizados de refugio seguro:

- 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

Estos refugios seguros definen cuánto espacio (en MB) será misericordiosamente preservado durante la recuperación de espacio:

Aumenta estos valores si necesitas más margen en tus sistemas de archivos, o redúcelos para no mostrar piedad alguna. 😈

Otorgar propiedad de /nix al usuario (Edicto de Permisos de Nix) 🧑‍⚖️

Algunos instaladores o configuraciones de Nix esperan que el directorio /nix sea escribible por el usuario actual. Por defecto, /nix pertenece a root. Si necesitas propiedad de usuario (por ejemplo, para ciertos scripts de instalación de Nix que no usan sudo para todas las operaciones dentro de /nix), puedes habilitar el nix-permission-edict:

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

Cuando nix-permission-edict está configurado como true, la acción ejecutará sudo chown -R "$(id --user)":"$(id --group)" /nix después de montar /nix.

Configurar Nix para usar /nix/build

Esta acción crea /nix/build para que las derivaciones de Nix usen el espacio recuperado. Añada build-dir a su configuración de Nix:

- uses: cachix/install-nix-action@v31
  with:
    extra_nix_config: |
      build-dir = /nix/build

O con DeterminateSystems:

- uses: DeterminateSystems/nix-installer-action@main
  with:
    extra-conf: |
      build-dir = /nix/build
Esto indica a Nix que realice las construcciones en el volumen BTRFS grande en lugar del directorio temporal predeterminado del sistema.

Solución de problemas 🔍

"No queda espacio en el dispositivo" durante construcciones grandes

Si tu construcción se queda sin espacio a pesar de usar solo Nix, probablemente se deba a que la depuración en segundo plano no se ha completado antes de que tu construcción consuma el espacio disponible. Esto afecta comúnmente a:

Solución: Usa witness-carnage: true para forzar la depuración sincrónica. Esto asegura que todo el espacio se recupere antes de que tu construcción comience:

- uses: wimpysworld/nothing-but-nix@main
  with:
    hatchet-protocol: 'rampage'
    witness-carnage: true

Esto añade entre 30 y 180 segundos a la configuración de tu flujo de trabajo, pero garantiza que tendrás el máximo espacio disponible cuando comience tu compilación.

¡Ahora ve y construye algo increíble con todo ese glorioso espacio del Nix store! ❄️ --- Tranlated By Open Ai Tx | Last indexed: 2026-03-18 ---