Web Analytics

nothing-but-nix

⭐ 213 stars Dutch by wimpysworld

🌐 Taal

Nothing but Nix

Transformeer je GitHub Actions-runner in een Nix ❄️ krachtpatser door genadeloos vooraf geïnstalleerde rommel te verwijderen.

GitHub Actions-runners hebben slechts weinig schijfruimte voor Nix – slechts ~20GB. Nothing but Nix verwijdert meedogenloos onnodige software, waardoor je 65GB tot 130GB voor je Nix-store krijgt! 💪

Gebruik 🔧

Voeg deze actie toe voordat je Nix installeert in je 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...

Vereisten ️✔️

Het Probleem: Ruimte maken voor Nix om te gedijen 🌱

Standaard GitHub Actions runners zitten vol met "bloatware" die je nooit zult gebruiken in een Nix workflow:

Deze bloat laat slechts ~20GB over voor je Nix store - nauwelijks genoeg voor serieuze Nix builds! 😞

De Oplossing: Alleen Nix ️❄️

Alleen Nix neemt een radicale aanpak op GitHub Actions runners en herovert genadeloos schijfruimte via een tweefasige aanval:

De bestandsysteemopruiming wordt aangedreven door rmz (van het Fast Unix Commands (FUC) project) - een high-performance alternatief voor rm dat het terugwinnen van ruimte razendsnel maakt! ⚡ Het eindresultaat? Een GitHub Actions runner met 65GB tot 130GB aan Nix-klare ruimte! 😁

Dynamische volumegroei

In tegenstelling tot andere oplossingen groeit Nothing but Nix je /nix volume dynamisch:

Het /nix volume groeit automatisch tijdens workflow-uitvoering 🎩🪄

Kies je wapen: Het Hatchet Protocol 🪓

Beheer het niveau van vernietiging 💥 met de hatchet-protocol input:

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

#### Protocol Vergelijking ⚖️

| Protocol | /nix | Beschrijving | Verwijder apt | Verwijder docker | Verwijder snap | Verwijderde bestandssystemen | |----------|--------|---------------------------------------------------|----------------|------------------|----------------|-------------------------------| | Holster | ~65GB | Houd het bijl in de schede, gebruik ruimte van /mnt | Nee | Nee | Nee | Geen | | Carve | ~85GB | Maak en combineer vrije ruimte van / en /mnt | Nee | Nee | Nee | Geen | | Cleave | ~115GB | Maak krachtige, beslissende sneden in grote pakketten | Minimaal | Ja | Ja | /opt en /usr/local | | Rampage | ~130GB | Meedogenloze, brute eliminatie van alle ballast | Agressief | Ja | Ja | Muahahaha! 🔥🌎 |

Kies wijs:

Getuige De Slachting 🩸

Standaard wordt het opschoningsproces stilletjes op de achtergrond uitgevoerd terwijl je workflow doorgaat. Maar als je het bloedbad in realtime wilt bekijken:

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

Pas veilige havens aan 🛡️

Bepaal hoeveel ruimte je wilt vrijhouden van de Nix store-inname met aangepaste veilige haven-groottes:

- 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

Deze veilige havens bepalen hoeveel ruimte (in MB) genadig zal worden gespaard tijdens ruimte-terugwinning:

Verhoog deze waarden als je meer ademruimte op je bestandssystemen nodig hebt, of verlaag ze om geen genade te tonen! 😈

Geef gebruikers eigenaarschap van /nix (Nix Permission Edict) 🧑‍⚖️

Sommige Nix-installers of configuraties verwachten dat de map /nix schrijfbaar is voor de huidige gebruiker. Standaard is /nix eigendom van root. Als je gebruikers-eigenaarschap nodig hebt (bijvoorbeeld voor bepaalde Nix-installatiescripts die niet sudo gebruiken voor alle bewerkingen binnen /nix), kun je de nix-permission-edict inschakelen:

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

Wanneer nix-permission-edict is ingesteld op true, zal de actie sudo chown -R "$(id --user)":"$(id --group)" /nix uitvoeren nadat /nix is aangekoppeld.

Configureer Nix om /nix/build te gebruiken

Deze actie maakt /nix/build aan zodat Nix-afleidingsbuilds de teruggewonnen ruimte kunnen gebruiken. Voeg build-dir toe aan je Nix-configuratie:

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

Of met DeterminateSystems:

- uses: DeterminateSystems/nix-installer-action@main
  with:
    extra-conf: |
      build-dir = /nix/build

Dit instrueert Nix om builds uit te voeren op het grote BTRFS-volume in plaats van de standaard tijdelijke map van het systeem.

Problemen oplossen 🔍

"Geen ruimte meer op apparaat" tijdens grote builds

Als je build geen ruimte meer heeft ondanks dat je alleen Nix gebruikt, komt dit waarschijnlijk doordat de achtergrondopruiming nog niet voltooid is voordat je build de beschikbare ruimte verbruikt. Dit treft vaak:

Oplossing: Gebruik witness-carnage: true om synchrone opruiming af te dwingen. Dit zorgt ervoor dat alle ruimte wordt teruggewonnen voordat je build start:

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

Dit voegt 30-180 seconden toe aan je workflow-setup, maar garandeert dat maximale ruimte beschikbaar is wanneer je build begint.

Ga nu iets fantastisch bouwen met al die prachtige Nix store ruimte! ❄️ --- Tranlated By Open Ai Tx | Last indexed: 2026-03-18 ---