Django                
            Kontinuierliche Integration mit Jenkins
        
        
            
    Suche…
Jenkins 2.0+ Pipeline Script
Moderne Versionen von Jenkins (Version 2.x) verfügen über ein "Build Pipeline Plugin", mit dem komplexe CI-Tasks koordiniert werden können, ohne dass eine Vielzahl miteinander verbundener Jobs erstellt wird. Außerdem können Sie Ihre Build- / Test-Konfiguration auf einfache Weise versionieren.
Sie können dies manuell in einem Auftrag vom Typ "Pipeline" installieren. Wenn Ihr Projekt auf Github gehostet wird, können Sie das "GitHub Organization Folder Plugin" verwenden, um automatisch Jobs für Sie einzurichten.
Hier eine einfache Konfiguration für Django-Sites, für die nur die angegebenen Python-Module der Site installiert werden müssen.
#!/usr/bin/groovy
node {
  // If you are having issues with your project not getting updated, 
  // try uncommenting the following lines.
  //stage 'Checkout'
  //checkout scm
  //sh 'git submodule update --init --recursive'
  stage 'Update Python Modules'
  // Create a virtualenv in this folder, and install or upgrade packages
  // specified in requirements.txt; https://pip.readthedocs.io/en/1.1/requirements.html
  sh 'virtualenv env && source env/bin/activate && pip install --upgrade -r requirements.txt'
  
  stage 'Test'
  // Invoke Django's tests
  sh 'source env/bin/activate && python ./manage.py runtests'
}
Jenkins 2.0+ Pipeline Script, Docker Container
 Hier ist ein Beispiel eines Pipeline-Skripts, das einen Docker-Container erstellt und die darin enthaltenen Tests ausführt. Der Einstiegspunkt wird angenommen, dass sie entweder manage.py oder invoke / fabric mit runtests verfügbaren Befehls. 
#!/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}"
   }
}