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).

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)

  1. Koden tjekkes ud.
  2. Et Docker image bygges ud fra koden.
  3. 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)

  1. Koden tjekkes ud.
  2. Det officielle Ubuntu 22.04 ISO-image hentes.
  3. ISO-filsystemet udpakkes og modificeres med scripts.
  4. Den modificerede ISO pakkes tilbage som en ny ISO-fil.
  5. ISO filen publiceres:
    • Manuelt byg
      • Der genereres en midlertidig artifakt (-dev.iso), som kan downloades direkte fra GitHub Actions:
        artifakt Development iso-fil kan downloades dirkete fra Github
    • 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.

Hvor findes de endelige produkter?

Releases

Release Notes