PY-CI
CI/CD implementálása Python projekten
Ismertető
A képzés célja a Continuous Integration, Continuous Delivery fogalmainak bemutatása. Gyakorlati feladatként egy pipeline kerül létrehozásra egy Python projekthez. A forráskód GitHubon kerül eltárolásra. A képzés során egy library-t és egy alkalmazást is elkészítünk. Az alkalmazáshoz Docker image is készül, amit Kubernetes környezetbe telepítünk. A CI eszköz a Jenkins. A forráskód minőségellenőrzését SonarQube végzi. Az artifactok Nexus repository-ba kerülnek publikálásra.
Lehetőség van személyre szabott képzésre is, mely során az eszközök másra cserélhetőek.
Tematika
- Egy szoftverfejlesztési életciklus és a release folyamat kapcsolódó lépései: verziókezelés, fejlesztés, build, unit és integrációs tesztelés, kódminőség ellenőrzés, release-elhető artifact elkészítése, deploy különböző környezetekbe, stb.
- Continuous Integration bemutatása, és az általa megoldott problémák
- Continuous Delivery bemutatása, és az általa megoldott problémák
- Continuous Deployment bemutatása
- A CI/CD létrejöttének okai
- Pipeline fogalma
- Verziókezelés
- Library és alkalmazás
- Python projekt felépítése,
setup.cfg
,pyproject.toml
- Függőségkezelés, pip,
requirements.txt
- Unit tesztek futtatása, tesztlefedettség (pytest, coverage)
- Integrációs tesztek, adatbázis séma verziózás
- Release, wheel
- Feature branching
- Feature flags
- Szemantikus verziókezelés
- Docker
- E2E tesztek (Postman/Newman) Docker compose-zal
- Jenkins architektúra, pipeline (
Jenkinsfile
), Blue Ocean graphical interface, build number használata, Docker használat - Statikus kódelemzés (pylint, flake8, mypy) , SonarQube, tesztlefedettség, Quality Profile, Quality Gate
- Nexus Repository használata, Python artifactok (twine) és Docker image-ek deploy-olása, proxy és private repository-k
- Dokumentáció generálása
- Telepítés Kubernetes környezetbe
Szükséges előképzettség
Biztonságos operációs rendszer és parancssor használat. Fejlesztési projektekben való részvétel.
Mivel a tananyagok egy része angol nyelvű, ezért alapfokú, dokumentumolvasás-szintű angol nyelvtudás szükséges. A képzés magyar nyelvű, magyar slide-ok alapján.