gidsen
Foutopsporing in CI met een breekpunt in plaats van 40 commits
Foutopsporing in printinstructies via push is de langzaamste lus in software. SSH in plaats daarvan naar de loper.
{auteur} · {rol} · {datum} · {minuten} min leestijd
De standaardmanier om een fout met alleen CI te debuggen is door een echo toe te voegen, te pushen, acht minuten te wachten, het logboek te lezen en dit te herhalen. Teams besteden routinematig een dag aan storingen waarbij het vier minuten duurt om een diagnose te stellen met behulp van een shell.
De snellere lus
- Voeg een breekpuntstap toe die de runner openhoudt bij falen
- SSH-in met uw geautoriseerde sleutel terwijl de werkruimte precies is zoals de mislukte stap deze heeft achtergelaten
- Inspecteer de daadwerkelijke bestandssysteem-, omgevings- en toolversies in plaats van deze af te leiden
- Repareer, verwijder het breekpunt, druk één keer
yaml
- name: Hold the runner open if the tests failed if: failure() uses: runnerhut/breakpoint@v1 with: timeout-minutes: 30Wat het meestal blijkt te zijn
- Een toolversie die afwijkt van lokaal
- Een ontbrekende landinstelling of tijdzone die alleen van belang is bij tests voor datumopmaak
- Testorderafhankelijkheid blootgelegd door verschillend parallellisme
- Een bestand waarvan de build aannam dat het bestond omdat het lokaal werd gegiignoreerd
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.
Gerelateerd
CI als je teamgenoten agenten zijnAI-codeermiddelen pushen veel vaker dan mensen. Hier leest u hoe dat het pijplijnontwerp en de kostenbeheersing verandert.Waarom we instructies voor vertrek publicerenElke migratiepagina op deze site bevat de diff om terug van ons te migreren. Hier is de redenering.Wat we hebben geleerd bij het runnen van een miljoen CI-banenWachtrijtijd, cachegedrag, juiste grootte en de faalmodi die alleen op schaal voorkomen.Stop met het opnieuw proberen van slechte testsAutomatische nieuwe pogingen veranderen een echte bug in een periodieke bug en trainen uw team om elke fout te wantrouwen.