Home - MocStepan/pdo GitHub Wiki

Dokumentace k bakalářské práci

Tento repozitář slouží k využití github wiki pro napsání technické dokumentace k bakalářské práci.

Představení bakalářské práce

  • Bakalářská práce se zabívá CI testy a detekce chyb na platformě GitHub Actions.
  • Autor: Štěpán Moc
  • Vedoucí práce: doc. Mgr. Jan Březina, Ph.D.

Cíl dokumentace

Tato dokumentace se zaměřuje na využití GitHub Actions pro kontinuální integraci (CI) simulátoru Flow123d. Obsahuje návody pro nastavení CI/CD pipeline, tvorbu Docker obrazu a integraci testovacích nástrojů. Také se zaměřuje na platformu e-infra a automatické nasazení aplikací za pomocí helm a k8s (Kubernetes) nástrojů


Cílové skupiny a typ dokumentace

Vývojář CI/CD pipeline (devops, admin, sysadmin)

Typ návodu: technická dokumentace

Obsah návodu:

  • Seznámení s GitHub Actions
  • Nastavení CI pro Flow123d
  • Vytvoření release Docker image s nástroji (např. vtk)
  • Spouštění integračních testů v rámci CI
  • Monitorování a ladění CI/CD pipeline

Další potřeby:

  • Přístup k repozitáři Flow123d nebo vlastní repozitář s již existujícím kódem, aby bylo možné pracovat s pipelines
  • Možnost spouštění a testování pipeline na vzdáleném serveru (github runner) nebo lokálně na vlastním zařízení za pomocí nástroje act

Administrátor platformy CERIT-SC

Typ návodu: systémová dokumentace

Obsah návodu:

  • Zprovoznění Voila! a jupyter notebook aplikace pro vizualizaci dat
  • Vytvoření kontejnerů pro Voila!
  • Práce s helm a kubernetes nástroji
  • Nasazení kontejnerů na CERIT-SC
  • Automatizace nasazení

Další potřeby:

  • Přístup k prostředí CERIT-SC (rancher.e-infar.cz)
  • Možnosti správy kontejnerů
  • Vlastní kubernetes namespace

Osnova

1. Úvod

  • Cíl dokumentace
  • Stručný popis GitHub Actions a CI
  • Přehled součástí dokumentace

2. Automatizace procesu CI/CD pomocí GitHub Actions

  • Jak GitHub Actions funguje
  • Přehled CI/CD workflow
  • Definice jobů a runnerů
  • Best practices pro CI/CD

3. Tvorba a správa Docker image

  • Základní image a jeho rozšíření
  • Jak integrovat nástroje pro běh testů (VTK, další knihovny)
  • Ukládání a verzování image
  • Publikace image do Docker Hub nebo GitHub Container Registry

4. Osnova pro vývojáře

1. Automatizace testování v CI/CD

  • Konfigurace a spouštění integračních testů
  • Využití testovacích frameworků (GoogleTest)
  • Paralelizace testů
  • Debugging a troubleshooting CI/CD pipeline

2. Reportování výsledků testů

  • Rešerše dostupných nástrojů
  • Výběr a implementace nejvhodnějšího nástroje
  • Automatizované generování reportů
  • Integrace test reportů s GitHub Actions

5. Osnova pro administrátory

1. Helm

  • Co to je
  • Jak to funguje
  • Využití Helm charts v projektech

2.. Kubernetes

  • Co to je
  • Jak to funguje
  • Jednoduchá implementace s ukázkou pro Cerit-SC
  • Instalace a konfigurace Kubernetes prostředí

3. Automatizace Helm charts a Kubernetes

  • Co potřebuji pro vytvoření workflow v GitHub Actions
  • Implementace workflow pro nasazení na Cerit-SC s využitím Helm a Kubernetes
  • Deployment Voila! aplikace

6. Závěr

  • Shrnutí klíčových bodů
  • Další směřování dokumentace
  • Kam směřovat dotazy a zpětnou vazbu

Další kroky

  • Při příštím setkání projít připravené materiály
  • Iterativně vylepšovat podle zpětné vazby