U ovom vodiču korak po korak objasnit ću kako izgraditi pouzdan CI/CD pipeline za Python aplikacije koristeći GitHub Actions, Docker i pytest. Idealan je za developere koji žele automatizirati testiranje, build i deployment bez komplikacija.
Zašto je CI/CD važan
Kontinuirana integracija i kontinuirana isporuka smanjuju vrijeme između pisanja koda i njegove produkcije, otkrivaju greške ranije i omogućuju brže iteracije. Brža povratna informacija i manje ručnog rada su ključni za kvalitetu proizvoda.
Ukratko
CI/CD automatizira testiranje, izgradnju i deployment, čime se smanjuje rizik od grešaka u produkciji i ubrzava razvojni ciklus.
Odabir alata
| Rbr | Alat | Link | Za što | Razina |
|---|---|---|---|---|
| 1 | GitHub Actions | github.com/features/actions | CI/CD pipeline | Početnik |
| 2 | GitLab CI | gitlab.com | CI/CD pipeline | Srednji |
| 3 | CircleCI | circleci.com | CI/CD pipeline | Srednji |
| 4 | Docker | docker.com | Kontenerizacija | Početnik |
| 5 | pytest | pytest.org | Testiranje | Početnik |
| 6 | Coverage.py | coverage.readthedocs.io | Merenje pokrivenosti | Početnik |
Usporedba popularnosti alata
Popularnost alata (relativno)
Kako postaviti pipeline
Kreiraj repozitorij na GitHubu i dodaj .github/workflows direktorij
Napiši workflow datoteku (ci.yml) s triggerom na push i pull_request
Definiraj job za instalaciju dependencija: `python -m pip install -r requirements.txt`
Dodaj korak za pokretanje testova: `pytest`
Uključi coverage izvještaj pomoću `coverage run` i `coverage xml`
Ako želiš Docker image, dodaj build korak koji kreira image i push-a ga na Docker Hub
Postavi manualni trigger za deployment na produkciju
- Testiraj lokalno prije push-a
- Koristi virtual environment
- Čuvaj tajne (secrets) u GitHub Settings
Automatizacija nije luksuz, već nužna komponenta modernog razvoja.
Savjet za početnike
Počnite s jednostavnim workflow-om koji samo pokreće testove. Kad sve funkcionira, postupno dodajte build i deployment korake.
