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.
Jenkinsin varmuuskopion palauttaminen
sudo docker rm -f jenkins.tracon.fi sudo docker volume rm jenkins.tracon.fi-data sudo docker volume create --name jenkins.tracon.fi-data sudo cat /var/backups/jenkins/jenkins.tracon.fi.tar | sudo docker run --rm -i --volume jenkins.tracon.fi-data:/var/jenkins_home debian:jessie tar -xv -C /