Kun kehittäjä puskee koodia Traconin CI:n piirissä olevan projektin GitHub-repon master-haaraan, seuraavat stepit suoritetaan automaattisesti:

  1. Build: Docker-imagen rakentaminen
  2. Test: Testien ajaminen uudessa Docker-imagessa
  3. Push: Uuden Docker-imagen toimitus Docker Hubiin
  4. Deploy: Sovelluksesta ajossa olevien instanssien päivittäminen uuteen versioon

Kirjoitushetkellä seuraavat projektit ovat CI:n piirissä:

Pääsääntöisesti projektien CI-putket deplaavat suoraan tuotantoon. Poikkeuksena on Kompassi, jossa development-haara deplataan staging-instanssiin dev.kompassi.eu ja master-haara tuotantoinstanssiin kompassi.eu.

CI-putkea pyörittää Jenkins, jossa buildit laukaistaan GitHubin lähettämällä webhookilla.

Mikä ei tapahdu automaattisesti

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.

  1. Viritä projektille Jenkinsfile
  2. Luo projektille buildi Jenkinsiin
  3. Viritä GitHubiin projektille service joka huutelee Jenkinsille

Haluan tunnuksen Jenkinsiin

Kysy Japsulta.

Jenkinsin varmuuskopion palauttaminen

Jenkinsin voi saada jojoon esimerkiksi plugarien päivityksen yhteydessä. Jos näin käy, ei hätää! Jenkinsin kaikki data varmuuskopioidaan joka yö.

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 /

Tämän jälkeen nosta Jenkins takaisin pystyyn Ansiblella:

ansible -sKt jenkins -l monokkeli.tracon.fi tracon.yml