Forgejo Actions: de runner is het werk, niet de workflow.
Een workflow schrijven kan je team. Dat er een runner klaarstaat die hem veilig uitvoert, regelen wij.
Kort antwoord
Forgejo Actions is het ingebouwde systeem voor CI/CD in Forgejo: bij elke wijziging in de code worden automatisch builds, tests of een uitrol gestart. De opdrachten worden uitgevoerd door een runner, een los programma op een server. Jevana host de runners op eigen hardware en houdt ze bij. Workflows hebben dezelfde vorm als bij GitHub Actions, dus bestaande bestanden zijn grotendeels herbruikbaar.
Van commit tot uitrol
- 01
Push
Iemand zet een wijziging in de repository of opent een pull request.
- 02
Workflow
Forgejo leest het workflowbestand in de repository en zet de opdrachten in de wachtrij.
- 03
Runner
Een runner pakt de opdracht op en voert elke stap uit in een schone container.
- 04
Resultaat
Groen of rood bij de commit, met het logboek erbij. Bij groen kan de uitrol volgen.
Wat we aan de runners doen
Capaciteit
- Hoeveel opdrachten tegelijk, afgestemd op je team
- Meer runners erbij als de wachtrij te lang wordt
- Gescheiden van de server waar Forgejo zelf op draait
Veiligheid
- Elke opdracht in een eigen container, die daarna verdwijnt
- Geheimen alleen beschikbaar voor de workflows die ze nodig hebben
- Geen runner die bij systemen kan waar hij niets te zoeken heeft
Onderhoud
- De runner-software bijgewerkt met Forgejo mee
- Oude containerimages en caches opgeruimd
- Een melding bij een runner die niet meer reageert
Wat er anders is dan bij GitHub
De opbouw van een workflow is hetzelfde: een YAML-bestand met jobs en stappen. Veel acties uit het ecosysteem van GitHub werken ongewijzigd. Forgejo belooft geen volledige gelijkheid, en een enkele actie die diep op GitHub zelf leunt moet worden vervangen.
Het grootste verschil is waar het draait. Bij GitHub lopen je builds op machines van Microsoft. Hier lopen ze op runners in Nederland, die alleen jouw organisatie gebruikt. Voor code die naar een eigen server moet worden uitgerold is dat ook praktisch: de runner staat al aan de goede kant van de firewall.
Veelgestelde vragen
Wat is een runner in Forgejo?
Een runner is het programma dat de opdrachten uit een workflow daadwerkelijk uitvoert. Forgejo zelf bewaart de code en bepaalt wat er moet gebeuren; de runner haalt die opdrachten op, start een container en draait daarin de build of de tests. Runners staan los van de Forgejo-server en je kunt er meerdere hebben, bijvoorbeeld een aparte voor zware builds.
Draaien de builds op hardware van Jevana?
Ja. De runners staan op onze eigen servers in Nederland, gescheiden van de Forgejo-installatie. Broncode en buildresultaten verlaten onze omgeving niet, tenzij een stap in je workflow ze ergens naartoe stuurt. Moet een build bij een systeem in je eigen netwerk kunnen, dan plaatsen we een runner daar, die alleen naar buiten hoeft te bellen.
Werken onze GitHub Actions-workflows in Forgejo?
Grotendeels. Forgejo Actions gebruikt dezelfde indeling van workflowbestanden en kan veel bestaande acties rechtstreeks gebruiken. Kleine aanpassingen zijn vaak nodig, zoals de map waarin de workflows staan en verwijzingen naar functies die alleen GitHub kent. Bij een overstap lopen we de workflows met je team na en zetten we ze één voor één over.
Hoe gaan jullie om met geheimen in een workflow?
Wachtwoorden, sleutels en tokens staan als geheim opgeslagen in Forgejo, per repository of per organisatie, en niet in de code. Een workflow krijgt ze alleen op het moment van uitvoeren, en ze worden in het logboek afgeschermd. We adviseren om per doel een eigen sleutel te gebruiken met zo min mogelijk rechten, zodat een gelekte sleutel weinig kan.
Past hier ook bij
-
Forgejo
Git-hosting en CI/CD voor ontwikkelteams, open source en op onze eigen hardware.
-
GitLab-hosting
Een eigen GitLab op onze hardware, voor teams die bij GitLab willen blijven maar niet bij de cloud ervan.
-
Managed hosting
Je eigen applicatie gehost en beheerd: server, database, uitrol en bewaking, op onze hardware.
-
Forgejo vs Gitea: wat is het verschil?
Forgejo is in 2022 afgesplitst van Gitea. Wat er sindsdien uit elkaar is gegroeid, en welke je kiest voor een eigen Git-server.
Uit de kennisbank
-
Codeberg of een eigen Forgejo: wat past bij je team?
Codeberg is een Europees alternatief voor GitHub, bedoeld voor open source. Wanneer het genoeg is en wanneer je zelf host.
-
Een Europees alternatief voor GitHub: Forgejo, Gitea of GitLab?
Drie manieren om je code zelf te hosten, het verschil tussen Forgejo en Gitea, en wat je meeneemt als je van GitHub vertrekt.
Vertel wat er bij jullie draait.
Een kennismaking kost niets. Je praat meteen met een van de twee mensen die het werk daarna ook echt doen.
of mail naar info@jevana.systems