Django Script de pipeline Jenkins 2.0+, conteneurs Docker


Exemple

Voici un exemple de script de pipeline qui génère un conteneur Docker, puis exécute les tests à l'intérieur de celui-ci. Le point d'entrée est supposé être manage.py ou invoke / fabric avec une commande runtests disponible.

#!/usr/bin/groovy

node {
  stage 'Checkout'
  checkout scm
  sh 'git submodule update --init --recursive'

  imageName = 'mycontainer:build'
  remotes = [
    'dockerhub-account',
  ]

  stage 'Build'
  def djangoImage = docker.build imageName

  stage 'Run Tests'
  djangoImage.run('', 'runtests')

  stage 'Push'
  for (int i = 0; i < remotes.size(); i++) {
      sh "docker tag ${imageName} ${remotes[i]}/${imageName}"
      sh "docker push ${remotes[i]}/${imageName}"
   }
}