Velkommen til CI/CD med GitHub Actions! Dette er leksjon 1 av 8. Du kan starte uten konto — fremgangen lagres mens du jobber, og du kan ta en pause når som helst.
Hvorfor automatisere utrullingen
Den manuelle utrullingsdøden — og hva CI og CD egentlig står for.
Å skrive programvare er én ferdighet. Å få den ferdige koden trygt ut til brukerne er en annen — og den har en uheldig vane med å ryke akkurat når koden selv var i orden. Dette kurset bygger ingenting i nettleseren: pipelines kjører på GitHubs maskiner, så her leser og forstår du — og øver på din egen GitHub-konto etterpå. Først: hvorfor manuell utrulling så smått begynner å koste mer enn den gir.
Den manuelle dødsspiralen
Utrulling for hånd er aldri ett grep. Det er en rutine med steg som må skje i rekkefølge, på riktig maskin, i riktig terminal:
- Send koden opp med
git push— fra maskinen din. - Logg inn på serveren og hent den nyeste versjonen.
- Installer avhengigheter og bygg — med riktig node-versjon.
- Kjør database-migrasjoner, hvis det finnes noen.
- Start programmet på nytt og tøm cachen.
- Sjekk at siden faktisk virker — ikke bare at kommandoen sluttet å klage.
Hvert av disse punktene kan glemmes, og du finner det ut som regel via en bruker. Jo mer travelt det er, desto sannsynligere er det: klokken 22:30 hopper man over «sjekk at det virker». Derfra er det kort vei til klassikeren «det funket på maskinen min» — for det gjorde det. Bare ikke der det skulle.
git push # 1. send koden oppssh deg@din-server # 2. logg inn på serverencd /var/www/app && git pull # 3. hent siste versjonnpm ci && npm run build # 4. håp at node-versjonen stemmernpm run migrate # 5. husket du at dette fantes?sudo systemctl restart app # 6. tøm cache. Vent — det var 6?Rutinen fungerer — helt til den ikke gjør det, eller til du er borte og noen andre må gjøre den uten å ha den i hodet. Derfor blir manuell utrulling dyr: ikke først i kroner, men i struktur og fravær. Og spiralens mekanikk er ond: jo oftere noe ryker, desto mer redd blir du for å rulle ut — og desto større blir hver utrulling når den endelig skjer.
Hva CI og CD faktisk betyr
CI — kontinuerlig integrasjon betyr at hvert push til repoet bygges og testes automatisk, av en maskin, med en gang. Hver endring integreres inn i helheten før noen rekker å glemme den — i stedet for uker senere, i en smertefull samlesjau der ti persons endringer møtes for første gang.
CD brukes om to ting, og det er greit å kjenne begge: kontinuerlig levering — hver grønn endring er ferdig pakket og klar til utrulling — og kontinuerlig utrulling, der hver grønn endring rulles ut automatisk uten menneskelig godkjenning. I dette kurset bruker vi CD om helheten, og er ærlige om at de fleste småprosjekter bør stoppe ved levering eller en manuell godkjenning før produksjon.
Poenget er ikke fart for farten. Poenget er at utrulling blir kjedelig — samme trinn, hver gang, logget og gjentakbart. Kjedelige utrullinger er det mest verdfule en liten kan få til, og de er langt mer verdifulle enn de fancy.
Når manuell er nok
En ærlig vurdering: har du én statisk hjemmeside, én forfatter og en host som ruller ut ved git push, trenger du ikke en pipeline. Hosting-tjenesten gjør allerede jobben, og et GitHub Actions-workflow ville vært pynt på toppen av noe som allerede virker.
Behovet oppstår når trinnene blir flere enn én, når flere mennesker pusher, eller når utrullingen avhenger av ting som node-versjon, migrasjoner og hemmeligheter. Så snart rutinen ikke lenger kan stå i et notat på tre linjer, er det på tide å skrive den ned som en pipeline — fordi filen husker, og ikke gjør feil av travlethet.
Tips
Pipelinen er dokumentasjonen
En bonus du kanskje ikke regnet med: workflow-filen beskriver utrullingsrutinen din for enhver som leser repoet — inkludert deg om seks måneder. Stegene står der, i rekkefølge, og maskinen følger dem. Det er mer enn de fleste README-er tør love.
Du kan nå
- forklare hvorfor manuell utrulling går galt akkurat når det er travelt
- si hva CI og CD står for — og forskjellen på levering og utrulling
- vurdere ærlig når manuell utrulling er nok