Kun kehittäjä puskee koodia Traconin CI:n piirissä olevan projektin GitHub-repon master-haaraan, seuraavat stepit suoritetaan automaattisesti:
- Build: Docker-imagen rakentaminen
- Test: Testien ajaminen uudessa Docker-imagessa
- Push: Uuden Docker-imagen toimitus Docker Hubiin
- Deploy: Sovelluksesta ajossa olevien instanssien päivittäminen uuteen versioon (huom. suoraan tuotantoon – harkitaan mahdollisia staging-instansseja jos tästä tulee ongelmia)
Kirjoitushetkellä seuraavat projektit ovat CI:n piirissä:
CI-putkea pyörittää Jenkins, jossa buildit laukaistaan GitHubin lähettämällä webhookilla.
Mikä ei tapahdu automaattisesti
- tietokantamigraatiot – esim. sudo docker exec kompassi.eu-gunicorn python manage.py migrate (tai kompassin tapauksessa mieluummin setup kuin migrate)
Uuden projektin lisääminen Jenkinsiin
Käytetään vain Pipeline-tyyppisiä projekteja, jos ei ole erityisen painavaa syytä tehdä vanhanmallista projektia. Pipelinen sisältö tulee Jenkinsfilestä projektin versionhallintareposta. Katso mallia ylläolevista.
- Viritä projektille Jenkinsfile
- Luo projektille buildi Jenkinsiin
- Viritä GitHubiin projektille service joka huutelee Jenkinsille
Haluan tunnuksen Jenkinsiin
TECH-95 - Getting issue details... STATUS
Kysy Japsulta.