젠킨스 MVN 파이프 라인 (고정 표시기 컴파일 출시 아직 생성 된 이미지)

젠킨스 파이프 라인 파일

currentBuild.description = " $ {BRANCH} _ $ {ENV} " 
파이프 라인 { 
    에이전트 { 
        노드 { 
            레이블 ' 마스터 ' 
            customWorkspace " 작업 공간 / $ {JOB_NAME} _ $ {ENV} " 
        } 
   } 

    후 { 
        성공 { '' '
                 컬 -H " 콘텐츠 형식 : 응용 프로그램 / JSON " -X POST는 -d ' { "지점": " ' $ {지점을} ' ", "프로젝트 이름을": " '$ {PROJECT_NAME} ' ","test_env ":" 'ENV {} $ ' ","유물 ":" ' ``$ {ID} ' '} ' HTTP : // hbtc.houbank.net:8000/api/release/artifactInfo/ 
                ' ''
         } 
    }     
    
    옵션 { 
        // 지주의 최대 개수의 건설 
        buildDiscarder (logRotator (numToKeepStr : ' 10 ' )) 
    } 
    매개 변수 { 
        선택 (이름 : ' ENV ' , 선택 : ' MIT \ NSIT \ nuat nprod \ ' , 설명 : ' ENV ' )
         문자열 (이름 :' 현재 상태' ,의 DefaultValue : ' 변환 후 ' , 설명 : ' 유통 센터를 이동 환경 변수 ' )
         문자열 (이름 : ' 지점 ' , DEFAULTVALUE : ' $ {gitlabSourceBranch} ' : 설명 ' 기본 자식 분기를 트리거 발표 선택 지점, ' )
         문자열 (이름 : ' 힘내 ' , DEFAULTVALUE : ' https://code.houbank.net/project/kuaiyipai_server.git ' , 설명 : ' 망할 놈의 주소 ') 
    } 
    환경 { 
        LOB= " Telesale "  // 비즈니스 라인의 
        접미사 = " JAR " 
        TARGET_FILE = " kuaiyipai-APP-API / 대상 / kuaiyipai-APP-API. $ 후위 {} " 
        PACKAGE_PATH_old = " / var에 / jenkins_home / 패키지 / $는 LOB / $ { }는 PROJECT_NAME / ENV $ {} "  // 변환 패키지 디렉토리 전에 프로젝트 
        PACKAGE_PATH_new = " / var에 / jenkins_home / 패키지 / $는 LOB / $ {}는 PROJECT_NAME / 생산성을 "  // 변환 패키지 디렉토리 프로젝트 후 
        = ID " 힘내 구문 분석 - 레브 $ params.BRANCH} { " 
        PROJECT_NAME = "$ {JOB_BASE_NAME}"   // 프로젝트 이름 
        GIT_ADDRESS = " $ {} params.GIT "  // 망할 놈의 주소 
        SAVE_FILE_NUM = . 3  //은 역사적 품질의 제품, 실제 채 두 날에 보유 
    } 
    단계가 { 
        스테이지 ( ' 코드를 탐지 ' ) { 
            단계 { 
                힘내 ( 
                    URL : " $ {} GIT_ADDRESS " , 
                    credentialsId : ' 23477e7c-edd5-48a1-a0e4-acfb57c55687 ' , 
                    지점 : " $ {params.BRANCH} " 
                )
            } 
         } 
        단계 ( ' 참조 컴파일러 패키지 ' {) 
            때 { 
            되지 않음 환경 {이름 : ' 상태 (STATUS) ' : 값 ' 변환 후 ' } 
            } 
            에이전트 { 
                도커 { 
                    이미지 ' 메이븐 : 3.5.3 ' 
                    인수 ' -v / 루트 / .m2 : /root/.m2 ' 
             } 
            } 
            단계 { 
                SH ' ''
                     CD $ {} WORKSPACE
                    만약 [! - D $ {} PACKAGE_PATH_old] 다음 
                        MKDIR ) {- P는 $ {PACKAGE_PATH_old} 
                    Fi를 
                    하면 [! -f $ {PACKAGE_PATH_old} / $ {PROJECT_NAME} _` $ {ID}`$ {후위}]. 다음 
                        MVN 깨끗한 패키지 -U -Dmaven.test.skip = 사실 -Dmaven.compile.fork = 사실   - P의 $ {ENV} 
                       
                    다른 
                        에코 " 파일이 " 
                    파이 
                '' '
                 } 
            } 

        
        단계 ( ' 不带参编译打包'
            {환경 명칭 : " STATUS " , 값 : ' 改造后'} 
            에이전트 { 
                고정 표시기 { 
                    이미지 ' 받는다는 : 3.5.3 ' 
                    인수 ' -v /root/.m2:/root/.m2 '   
        } 
            } 
            단계 { '' '
                 CD를 $ {WORKSPACE}
                 만약 [! - D $ {} PACKAGE_PATH_new] 다음 
                    MKDIR - P는 $ {} PACKAGE_PATH_new 
                인터넷 
                경우 [! -f $ {PACKAGE_PATH_new} / $ {PROJECT_NAME} _` $ {ID}`$ {후위}]. 다음 
                    MVN 깨끗한 패키지-Dmaven.test.skip = -U은 참으로 -Dmaven.compile.fork = true로 
                다른 
                    에코 " 파일이 존재 " 
                인터넷 
                '' '
                } 
             } 
             
         단계 ( ' 변환 유통 창고 전 ' ) { 
            { 
            : 없음 환경 {이름 ' 상태를 ' 가치 : " 변형 후 " } 
            } 
            단계 { 
                SH ''
                     IF 상기 PROJECT_NAME 당시 $ {} {_` $ '$ {ID}.} 후위][! -f $ {PACKAGE_PATH_old} / 
                        LS -t $ {PACKAGE_PATH_old} | 꼬리 -n + $ {SAVE_FILE_NUM} | xargs는 RM은 - F 
                        CP -rf $ {WORKSPACE} / $ {TARGET_FILE} $ {PACKAGE_PATH_old} / . $ {PROJECT_NAME} _` $ {ID}`$ {후위}
                     다른 
                        에코 " 파일 종료 " 
                    파이를 
                '' '
             } 
        } 

        단계 ( ' 改造后分发仓库' ) { 
            경우 {환경 이름 : ' 상태 ' , 값 : ' 改造后' }
            단계 { '' '
                     만약 [! -f $ {PACKAGE_PATH_new} / $ {PROJECT_NAME} _` $ {ID}`$ {후위}]. 다음 
                        LS -t $ {PACKAGE_PATH_new} | 꼬리 -n + $ {SAVE_FILE_NUM} | xargs는 RM은 - F 
                        CP -rf $ {WORKSPACE} / $ {TARGET_FILE} $ {PACKAGE_PATH_new} / . $ {PROJECT_NAME} _` $ {ID}`$ {후위}
                     다른 
                        에코 " 파일 종료 " 
                    파이를 
                '' '
             } 
        } 
        
        단계 ( ' 改造前环境发布' ) { 
            때 { 
              allOf { 
                되지 {환경 이름 : ' ENV ' , 값 :' 자극 ' } 
                하지 {환경 이름 : ' 상태 ' , 값 : ' 改造后' } 
                    } 
                  } 
            단계 { '' '
                 는 / usr / 빈 / ansible - 각본 -i / 응용 프로그램 / ansible / 호스트 / 응용 프로그램 / ansible / 배포 .yml -e " ENV = $ {ENV} 로브 = $ {LOB} 
                그룹 이름 = $ {PROJECT_NAME} ID = '$ {ID}` "   -e " @ / 응용 프로그램 / ansible / group_vars / $ {PROJECT_NAME} '
                 '' '
                } 
              } 
        스테이지 ( ' 발표 환경의 변화' ) { 
            경우 { 
              allOf { 
               환경 이름 : ' 상태 ' , 값 : ' 改造后' 
               하지 {환경 이름 : ' ENV ' , 값 : ' 자극 ' } 
                     } 
                  } 
            단계 { ' ''
                 ansible - 각본 -i / 응용 프로그램 / ansible / 호스트 -e /app/ansible/deploy.yml " ENV = $ {ENV} 로브 = $ {LOB} 그룹 이름 = $ {PROJECT_NAME} 
                : ID = '$ {ID}`remote_path = HTTP //192.168.13.9:81/jenkins/${LOB}/${PROJECT_NAME}/prod "-e"@ / 응용 프로그램 / ansible / group_vars / $ {PROJECT_NAME} ' 
                ' ''
                 } 
              } 
       } 
  }
파이프 라인 쇼

 

추천

출처www.cnblogs.com/Chen-PY/p/11207708.html