Byggeprocesser i OS2BorgerPC
Indledning
For at sikre en ensartet og veldefineret udviklingsproces er der opsat automatiske byggeprocesser for tre centrale komponenter i OS2BorgerPC-projektet:
- Admin-site (Container Image)
- PC ISO Image
- Kiosk ISO Image
Disse processer sikrer, at der altid er en officiel, opdateret og identisk version af softwaren tilgængelig. Dette gør det lettere at samarbejde, fejlmelde og foreslå forbedringer.
Formål med automatiske byggeprocesser
De automatiske byggeprocesser har flere formål:
- Effektivitet: Byggeprocesserne sikrer en hurtig og standardiseret produktion af softwaren.
- Sporbarhed: Hver version er entydigt identificeret og dokumenteret.
- Tilgængelighed: De nyeste udgaver gøres let tilgængelige for brugere og driftsfolk.
Hvordan trigges byggeprocesserne?
Byggeprocesserne kan trigges på to måder:
- Automatisk:
- Ved oprettelse af et release (versioneret byg)
- Ved merge af et pull request (ikke-versioneret byg til testformål)
- Manuelt:
- Brugere med de rette rettigheder kan trigge et byg direkte via GitHub Actions.
Dette gøres ved at gå til det relevante workflow og trykke Run workflow (vejledning).
- Brugere med de rette rettigheder kan trigge et byg direkte via GitHub Actions.
Adgangsrettigheder
- Release-oprettelse: Kun brugere med contributor-status eller skriverettigheder kan oprette et release (dokumentation).
- Manuel byg: Kun brugere med skriverettigheder kan manuelt trigge en byg. Dette styres via
workflow_dispatch
-konfigurationen i GitHub Actions (vejledning).
Oversigt over byggeprocesser
Admin-site (Container Image)
- Koden tjekkes ud.
- Et Docker image bygges ud fra koden.
- Image uploades til GitHub Container Registry (link) med relevante tags:
- Manuelt byg: Tagges med branchens navn.
- Automatisk byg:
- Ved release: Tagges med versionsnummer.
- Ved PR merge: Tagges som “latest”.
ISO Images (PC og Kiosk)
- Koden tjekkes ud.
- Det officielle Ubuntu 22.04 ISO-image hentes.
- ISO-filsystemet udpakkes og modificeres med scripts.
- Den modificerede ISO pakkes tilbage som en ny ISO-fil.
- ISO filen publiceres:
- Manuelt byg
- Der genereres en midlertidig artifakt (-dev.iso), som kan downloades direkte fra GitHub Actions:
Development iso-fil kan downloades dirkete fra Github
- Der genereres en midlertidig artifakt (-dev.iso), som kan downloades direkte fra GitHub Actions:
- Automatisk byg
- Ved release:
- ISO-filen uploades til en ekstern hosting service (AWS S3 kompatibel).
- Download-linket indsættes i release notes (eksempel).
- Ved PR merge: Samme som manuelt byg.
- Ved release:
- Manuelt byg
Hvor findes de endelige produkter?
Releases
- Admin-site (Container Image): GitHub Container Registry
- PC ISO Image: Download link findes i Releases
- Kiosk ISO Image: Download link findes i Releases
Release Notes
- Release notes genereres automatisk og knyttes til de enkelte releases.
- De kan findes under Releases på de relevante GitHub repositories: