수색…


Jenkins 2.0+ Pipeline Script

현대 버전의 Jenkins (버전 2.x)에는 여러 가지 상호 연결된 작업을 만들지 않고도 복잡한 CI 작업을 조율하는 데 사용할 수있는 "Build Pipeline Plugin"이 있으며 빌드 / 테스트 구성을 쉽게 버전 제어 할 수 있습니다.

이 작업은 "파이프 라인"유형 작업에서 수동으로 설치하거나 프로젝트가 Github에서 호스팅되는 경우 "GitHub 조직 폴더 플러그인"을 사용하여 자동으로 작업을 설정할 수 있습니다.

다음은 사이트의 지정된 파이썬 모듈 만 설치하면되는 Django 사이트의 간단한 구성입니다.

#!/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 컨테이너를 작성한 파이프 라인 스크립트의 예입니다. 그런 다음 내부에서 테스트를 실행합니다. 진입 점은 사용 가능한 runtests 명령이있는 manage.py 또는 invoke / fabric 으로 가정합니다.

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