Naar inhoud springen

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

  1. Voeg een breekpuntstap toe die de runner openhoudt bij falen
  2. SSH-in met uw geautoriseerde sleutel terwijl de werkruimte precies is zoals de mislukte stap deze heeft achtergelaten
  3. Inspecteer de daadwerkelijke bestandssysteem-, omgevings- en toolversies in plaats van deze af te leiden
  4. 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: 30

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