젠킨스 파이프 라인 워크 플로우 자동화 배포

젠킨스

젠킨스는 자바로 작성된 오픈 소스 지속적인 통합 도구입니다. 오라클과의 분쟁 후, 허드슨 프로젝트에서 항목을 새겨 져.

젠킨스는 소프트웨어 개발 서비스의 지속적인 통합을 제공합니다. 그것은 서블릿 컨테이너 (예를 들어, 아파치 톰캣)에서 실행됩니다. 그것은 당신이 아파치 개미와 Apache Maven 프로젝트 및 쉘 스크립트 및 Windows의 기준으로 배치 명령을 실행할 수 있습니다 (AccuRev SCM, CVS, Subversion을, 힘내, 억지로,은 ClearCase와 RTC 포함) 소프트웨어 구성 관리 (SCM) 도구를 지원합니다. 젠킨스는 주요 개발자 카와 구치 농업 추천입니다. 젠킨스는 MIT 라이센스 무료 소프트웨어로 배포됩니다.

그것은 구축하는 다양한 수단에 의해 트리거 될 수 있습니다. 다른이 완료되면 예를 들어, 버전 관리 시스템에 제출 트리거도 구성 될 수있다, 당신은 크론과 비슷한 메커니즘을 예약하여 특정 URL을 요청할 수 있습니다.

파이프 라인 만들기

기본 환경이 잘 구축 한 후,의 개인적 느낌 워크 플로우를 구성 할 수

다음과 같이 워크 플로우는 젠킨스, 사용자에 의해 정의 된 파이프 라인 실행 동작하는 Jenkinsfile 정의 파일에 저장된 내용의 파이프 라인이라고하고 자식 저장소의 루트 디렉토리에 파일을 저장하고, 일반 과정은

  1. 사용자 망할 놈의 코드를 제출
  2. 젠킨스는 자식의 최신 코드를 당겨
  3. 루트 디렉토리에 Jenkinsfile 파일을 읽고 파일에 정의 된 작업의 구현 다음

다음은 특정 구성 단계입니다

Jenkinsfile 쓰기

    pipeline {
        agent {
            label 'master' /* 执行节点 */
        }
        stages {
            stage('Build') {
                steps {
                    echo 'Building'
                }
            }
            stage('Test') {
                steps {
                    echo 'Testing'
                }
            }
            stage('Deploy - Staging') {
                steps {
                    sh './deploy staging'
                    sh './run-smoke-tests'
                }
            }
            stage('Sanity check') {
                steps {
                    input "Does the staging environment look ok?"
                }
            }
            stage('Deploy - Production') {
                steps {
                    echo './deploy production'
                }
            }
        }复制代码
        post {
            always {
                echo 'One way or another, I have finished'
                deleteDir() /* clean up our workspace */
            }
            success {
                echo 'I succeeeded!'
            }
            unstable {
                echo 'I am unstable :/'
            }
            failure {
                echo 'I failed :('
            }
            changed {
                echo 'Things were different before...'
            }
        }
    }
    复制代码

위는 다음과 같은 주요 개념을 가지고 기본 Jenkinsfile 템플릿입니다

  • agent- 위의 구성을 기억하는 시스템에서 작업 수행 지정 Node채워진 경우를 Label, 두 경우 label경기는에,에 있었다 Node실행
  • stage- 플로 많은 공정이 일련의 단계, 예를 들어 build, test, deploy
  • steps- 작은 단계에서, 동일 단계를 설명 stage에서 steps평행
  • sh- 실행 shell명령을
  • input- 당신은 수동으로 확인을 클릭해야 할 Pipeline매우 자주 사람들이 몇 가지 확인을 배포 할 필요가 있기 때문에, 일반적으로 배포 지역에서 사용되는 다음 링크를 입력합니다
  • post- 모든 파이프 라인의 실행이 완료된 후에는 링크가 일반적으로 몇 가지 정리 작업을 포스트로 연결됩니다뿐만 아니라 파이프 라인의 구현의 상태를 확인할 수 있습니다

이러한 이해 한 후에는 Jenkinsfile은 매우 쉬운 일이다 쓰기 찾을 수 있습니다. 자, 이제 루트 디렉토리에 Jenkinsfile의 자식 저장소에 복사 및 저장, 파이프 라인 기능, 쉬 에코에 위의 코드를 테스트합니다

파이프 라인 만들기

위로 젠킨스 웹 페이지, 파이프 라인을 추가

당신이 원하는 때마다 경우 git commit파이프 라인은 두 가지 방법이있을 때 자동으로 실행이, 하나는 젠킨스는 자식, 분 검사 당 자식 저장소 업데이트되지 않은 폴링 할 수 있도록하는 것입니다, 다음과 같은 구성

또 다른 방법은 자식이 후크를 제공 사용하는 것입니다, 원칙, 그것은 스크립트에 후크를 트리거 한 번 제출하는 방식의 자식이다, 스크립트 젠킨스는 명령 실행 파이프 라인에 보내,이 방법은 더 우아하지만, 더 필요 그에 따라 수행되어야 조금 더,이 방법의 데모가없는, 관심있는 학생들은 자신의 모습을 공부할 수 있습니다.

마지막으로, 우리는 신용이 마스터 신용 노드로 설정하는 것을 위의 일관된 설정되어있는 주소 자식을 설정해야

일단 당신이 저장소는 새로운 제출을 수신 이눔하면, 그것은 파이프 라인의 실행을 트리거, 설정,이 그림은 당신이 정신이 단계를 확인 실행할 때 볼 수 있습니다 위의 예제 다음과 같은 상태 Jenkinsfile를 실행, 수동을 필요 백 동작을 수행할지 여부를 발생시킨다.

다른

프로젝트 주소 : HTTPS : //github.com/changdaye/jenkins-docker-demo/

그래픽 플러그 프리젠 테이션 단계 : https://wiki.jenkins.io/display/JENKINS/Pipeline+Stage+View+Plugin

당신이 당신을 도울 수있는 기사를 느끼는 경우에, 당신은 격려 여러 가지 빛깔의 [색] 마이크로 채널 공공 숫자에 초점을 맞출 수 있습니다

추천

출처juejin.im/post/5da5221b5188250b16727148