Hoppa till innehåll

Runner

Datorn eller programmet som faktiskt kör stegen i en pipeline och rapporterar resultatet tillbaka.

Kallas även
CI-runner, byggagent
Kategorier
UtvecklingsflödeInfrastruktur

Enkel förklaring

En pipeline beskriver vilka steg som ska köras, men någon måste göra jobbet. Det gör runnern: ett program på en dator som tar emot uppdrag, kör stegen och berättar hur det gick.

Tjänsten där koden lagras, till exempel Forgejo, fungerar som en arbetsledare som delar ut uppdrag. Runnern är den som utför dem.

Teknisk förklaring

En runner installeras på en dator och registreras hos tjänsten. Sedan frågar den regelbundet om det finns jobb att göra. När den får ett jobb hämtar den koden, kör stegen och skickar tillbaka loggar och resultat.

Stegen körs ofta i en container (se Docker), så att varje jobb börjar i en ren miljö. För Forgejo heter programmet Forgejo Runner.

En runner kör den kod som finns i ändringsförslaget. Den som kan ändra testerna eller pipelinen kan alltså styra vad runnern gör.

Praktiskt exempel

När någon öppnar en pull request i Kodkollektivet Academy händer följande:

  1. Forgejo ser att projektets pipeline ska köras och lägger ett jobb i kö.
  2. Runnern hämtar jobbet, hämtar koden och kör stegen: bygget, testerna och kontrollerna.
  3. Runnern skickar tillbaka loggen och resultatet.
  4. Resultatet syns på pull requesten som en grön eller röd markering.

Ingen människa behöver starta något. Allt sker automatiskt varje gång en ändring föreslås.

När och varför används det?

Varje projekt som använder CI behöver minst en runner. En del tjänster erbjuder färdiga runners, och andra kör man på egna datorer.

Rekommendation:

  • Kör runnern på en dator som är avskild från viktiga system och hemligheter.
  • Låt en runner bara ta jobb från de projekt som den är avsedd för.
  • Ge jobben så lite behörighet som möjligt.

Vanliga missförstånd

  • “Forgejo kör testerna själv.” Nej. Forgejo delar ut jobben, men det är runnern som kör dem.
  • “En runner är ofarlig.” Nej. Den kör kod från ändringsförslagen. Ett skadligt förslag kan därför försöka utnyttja den.
  • “Runnern finns i molnet.” Det kan den göra, men den kan lika gärna vara en dator i ett rum hos er.

Relaterade begrepp