Поиск…


Jenkins 2.0+ Pipeline Script

Современные версии Jenkins (версия 2.x) поставляются с «Build Pipeline Plugin», который может использоваться для организации сложных задач CI без создания множества взаимосвязанных заданий и позволяет вам легко контролировать конфигурацию сборки / тестирования.

Вы можете установить это вручную в задании типа «Тип трубопровода», или, если ваш проект размещен в Github, вы можете использовать «GitHub Organization Folder Plugin» для автоматической настройки заданий для вас.

Вот простая конфигурация для сайтов Django, для которых требуются только указанные модули python для сайта.

#!/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 Containers

Ниже приведен пример сценария конвейера, который создает контейнер Docker, а затем запускает тесты внутри него. Предполагается, что точка входа будет либо manage.py либо invoke / fabric с runtests командой runtests .

#!/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}"
   }
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow