May 22, 2024

GitHub gebruikt acties en runners voor GitHub.com

GitHub gebruikt acties en runners voor GitHub.com

Om de manier waarop we software op een schaalbare en efficiënte manier verzenden te verbeteren, GitHub heeft GitHub Actions geadopteerd als onderdeel van zijn continue integratiesysteem. Ze profiteerden vooral van het nieuwe De acties van lopers zijn groter Om 15.000 CI-taken uit te voeren over 150.000 cores. Daarbij hebben ze ook de mogelijkheden van grotere hardlopers voor al hun gebruikers uitgebreid.

Dit heeft ons de kans gegeven om niet alleen over te stappen op een volledig uitgerust CI-systeem, maar ook om de systemen die we voor onze klanten bouwen te ontwikkelen, uit te proberen en te gebruiken en om feedback te stimuleren om het product te helpen bouwen.

GitHub-ingenieurs hebben enkele van de basisfuncties van GitHub Actions gebruikt, b.v Herbruikbare werkstroomen heeft een nieuwe functie gemaakt waarmee workflows eerdere resultaten kunnen hergebruiken.

Herbruikbare workflows zijn bedoeld om een ​​mechanisme te bieden voor het beheren van een reeks workflows in één opslagplaats, zodat deze in andere opslagplaatsen kunnen worden hergebruikt. Dit was van cruciaal belang om het proces van het toevoegen van CI aan repository’s naadloos te laten verlopen, wat anders het creëren van nieuwe workflows voor elke repository zou vereisen.

Het hergebruiken van eerdere werkstroomresultaten is in plaats daarvan een optimalisatiemechanisme dat voorkomt dat de werkstroom wordt uitgevoerd wanneer de bestandsinhoud in de repository exact hetzelfde is als in de vorige uitvoering van de werkstroom. Dit gebeurt wanneer de Git tree ID van de huidige commit hetzelfde is als de vorige commit. In dergelijke gevallen zal het uitvoeren van de workflow precies hetzelfde resultaat opleveren, dus in plaats van deze opnieuw uit te voeren, worden de resultaten van de vorige run hergebruikt.

De laatste vereiste die GitHub-ingenieurs moesten oplossen, was om grotere hardlopers toegang te geven tot een deel van hun infrastructuur, waaronder objectopslag, metadatadiensten voor applicaties en andere diensten waarmee testtools kunnen worden aangeroepen. Hierdoor ontstond een portaal om lopers toegang te geven tot privébronnen met behoud van de veiligheid.

Deze oplossing voor externe toegang werkt volgens het principe van het aanmaken van een OIDC-token in een GitHub-actie, het doorgeven van het OIDC-token aan een gateway voor externe toegang die het verzoek autoriseert door het OIDC-token te valideren, en vervolgens het verzoek te proxyen naar de privéservice die zich in een privé-omgeving bevindt. netwerk.

Als je geïnteresseerd bent in het gebruik van dezelfde aanpak voor hardlopers, heeft GitHub dit aangeboden Basissteigers om de implementatie van deze aanpak te bewerkstelligen.