日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
將自由風格項目轉(zhuǎn)換為管道項目 CI/CD

 如今,許多公司都使用Jenkins完成了他們的持續(xù)集成,測試和持續(xù)部署。他們中的大多數(shù)使用freestyle作為默認項目類型,但這有其自身的局限性。根據(jù)需要,我最近開始將所有Freestyle遷移到Pipeline項目。那么什么時候觸發(fā)這些工作呢?開發(fā)人員/所有者通過推送/提交更新存儲庫后,jenkins作業(yè)將觸發(fā)這些作業(yè)-將生成一個二進制文件,另一個將運行單元測試以檢查代碼覆蓋率。由于代碼覆蓋率單元測試需要大量時間才能完成,因此將這兩個任務分成兩個工作的必要性上升了。只要存儲庫中有更新,就會觸發(fā)此作業(yè),并在限制運行和執(zhí)行構建前和構建后步驟的計算機中檢入代碼。

10年積累的成都網(wǎng)站制作、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有南安免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

自由風格項目

全局配置

GitHub存儲庫配置

啟用webhook配置

基于Shell的構建步驟

發(fā)布-根據(jù)結果構建任務

觸發(fā)電子郵件通知,以在構建執(zhí)行后通知項目所有者

為單元測試作業(yè)創(chuàng)建了相同的作業(yè)類型,在Build shell中進行了很少的改動,并添加了一些單元測試代碼。

為什么要轉(zhuǎn)換成Pipeline項目?

Freestyle的主要問題之一是,它不允許超過1個存儲庫的SCM輪詢webhook觸發(fā)器。這是我們的主要擔憂,為管道遷移鋪平了道路。上面的快照涵蓋了將近7項任務,而單元測試的任務數(shù)約為10。那么我們可以使用管道代碼來執(zhí)行所有任務。下面是從上面的Freestyle轉(zhuǎn)換而來的一個

 
 
 
 
  1. WSPACE = '/var/jenkins/workspace/Directory_Name/' 
  2. BRWSPACE = '/var/jenkins/workspace/' 
  3. pipeline { 
  4.     agent { 
  5.         node { 
  6.             label 'Node_Name' 
  7.             customWorkspace "${WSPACE}" 
  8.         } 
  9.     } 
  10.      
  11.     //清空構建目錄 
  12.     stages { 
  13.         stage('Cleaning up the previous directory') { 
  14.             steps { 
  15.                 echo 'Deleteing the directory' 
  16.                 sh "rm -rf  /var/jenkins/workspace/Directory_Name/* " 
  17.             } 
  18.         } 
  19.          
  20.     // 下載代碼和依賴 
  21.     stage('Checking out build repo and its dependencies') { 
  22.              steps { 
  23.                 dir("${WSPACE}/RepoName") { 
  24.                     git branch: 'master',  
  25.                         credentialsId: 'UserName',  
  26.                         url: 'https://github.com/path/repo.git' 
  27.                 } 
  28.                 dir("${WSPACE}/dir") { 
  29.                     git branch: 'master',  
  30.                         credentialsId: 'UserName',  
  31.                         url: 'https://github.com/path/repo1.git' 
  32.                 } 
  33.                 dir("${WSPACE}/dir3") { 
  34.                     git branch: 'master',  
  35.                         credentialsId: 'UserName2',  
  36.                         url: 'https://github.com/path/repo4.git' 
  37.               }     
  38.            } 
  39.     } 
  40.      
  41.     //執(zhí)行構建 
  42.     stage('Versioning and executing the build') { 
  43.          steps { 
  44.                 dir ("${WSPACE}/repo1") { 
  45.                     script{ 
  46.                         sh label: '', script: '''/usr/bin/env 
  47.        cd /var/jenkins/workspace/ 
  48.        original=`cat patch_info` 
  49.        MAJOR=`cat patch_info | cut -d "." -f1` 
  50.        MINOR=`cat patch_info | cut -d "." -f2` 
  51.        PATCH=`cat patch_info | cut -d "." -f3` 
  52.        New_Value=`expr $PATCH + 1` 
  53.        New_Version=$MAJOR.$MINOR.$New_Value 
  54.        sed -i "s/$original/$New_Version/g" patch_info 
  55.        echo "$New_Version" 
  56.        cd /var/jenkins/workspace/path/repo4/ 
  57.        echo "Starting the Unit Testing" 
  58.        export GOPATH=$HOME/go 
  59.        export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin 
  60.        make format 
  61.        make clean build 
  62.        if  make unit-test ; then 
  63.         cd /var/jenkins/workspace/path/repo1/dir  
  64.        else 
  65.         cd /var/jenkins/workspace/path/repo2/dir2 
  66.        fi 
  67.        if make unit-test ; then 
  68.         echo " unit testing completed" 
  69.        fi 
  70.                         ''' 
  71.                     }  
  72.                 } 
  73.          } 
  74.   } 
  75.    
  76.   //發(fā)布HTML報告 
  77.   stage ('Publish HTML Report') { 
  78.        steps { 
  79.           dir ("/jenkins/workspace/") { 
  80.                script{ 
  81.                 sh label: '', script: '''/usr/bin/env 
  82.                 perl /jenkins/generate_build_meta_data.pl -jr http://gitlab.com:8080 -bNum ${BUILD_NUMBER} -bName ${JOB_NAME} -o /tmp -t /jenkins/template.html 
  83.                 export GOPATH=$HOME/go 
  84.                 export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin 
  85.                 cd /var/jenkins/workspace/path/repo1/service/ 
  86.                 go tool cover -html=c.out -o coverage.html 
  87.                 cd /var/jenkins/workspace/path/repo2/dir3 
  88.                 go tool cover -html=c.out -o output.html 
  89.                ''' 
  90.               publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false,  
  91.               reportDir: '/tmp/${JOB_NAME}/${BUILD_NUMBER}', reportFiles: '${JOB_NAME}-${BUILD_NUMBER}-manifest.html', 
  92.               reportName: 'Email Output Subject', reportTitles: '']) 
  93.                }     
  94.           } 
  95.        } 
  96.   } 
  97.    
  98.   //發(fā)送郵件 
  99.   stage ('Send Email') { 
  100.        steps { 
  101.         dir ("${WSPACE}/repo4") { 
  102.          emailext attachmentsPattern: '**/coverage.html,**/dir4.html', body: '${FILE, path="/tmp/${JOB_NAME}/${BUILD_NUMBER}/${JOB_NAME}-${BUILD_NUMBER}-manifest.html"}', subject: 'Unit testing Email Output ${BUILD_NUMBER} Successful', to: "EmailID@Domain2.com, EmailID2@Domain3.com" 
  103.     } 
  104.    } 
  105.   } 
  106.  } 

上面的代碼為我們提供了編輯的空間及其凝聚力。管道作業(yè)的一個重要特征是階段的輸出以一種吸引人的方式呈現(xiàn),我發(fā)現(xiàn)這很容易理解正在進行的過程。

總結

創(chuàng)建Freestyle或Pipeline項目完全取決于需求。在定制方面,Pipeline顯示了主要空間,因為自由風格是啟動您的第一份Jenkins工作的簡便方法。


分享文章:將自由風格項目轉(zhuǎn)換為管道項目 CI/CD
文章轉(zhuǎn)載:http://www.5511xx.com/article/cdhdhje.html