這篇文章主要介紹“怎么將自由風(fēng)格項目轉(zhuǎn)換為管道項目CI/CD”,在日常操作中,相信很多人在怎么將自由風(fēng)格項目轉(zhuǎn)換為管道項目CI/CD問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么將自由風(fēng)格項目轉(zhuǎn)換為管道項目CI/CD”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元商城做網(wǎng)站,已為上家服務(wù),為商城各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
如今,許多公司都使用Jenkins完成了他們的持續(xù)集成,測試和持續(xù)部署。他們中的大多數(shù)使用freestyle作為默認項目類型,但這有其自身的局限性。根據(jù)需要,我最近開始將所有Freestyle遷移到Pipeline項目。那么什么時候觸發(fā)這些工作呢?開發(fā)人員/所有者通過推送/提交更新存儲庫后,jenkins作業(yè)將觸發(fā)這些作業(yè)-將生成一個二進制文件,另一個將運行單元測試以檢查代碼覆蓋率。由于代碼覆蓋率單元測試需要大量時間才能完成,因此將這兩個任務(wù)分成兩個工作的必要性上升了。只要存儲庫中有更新,就會觸發(fā)此作業(yè),并在限制運行和執(zhí)行構(gòu)建前和構(gòu)建后步驟的計算機中檢入代碼。
自由風(fēng)格項目
全局配置
GitHub存儲庫配置
啟用webhook配置
基于Shell的構(gòu)建步驟
發(fā)布-根據(jù)結(jié)果構(gòu)建任務(wù)
觸發(fā)電子郵件通知,以在構(gòu)建執(zhí)行后通知項目所有者
為單元測試作業(yè)創(chuàng)建了相同的作業(yè)類型,在Build shell中進行了很少的改動,并添加了一些單元測試代碼。
為什么要轉(zhuǎn)換成Pipeline項目?
Freestyle的主要問題之一是,它不允許超過1個存儲庫的SCM輪詢webhook觸發(fā)器。這是我們的主要擔(dān)憂,為管道遷移鋪平了道路。上面的快照涵蓋了將近7項任務(wù),而單元測試的任務(wù)數(shù)約為10。那么我們可以使用管道代碼來執(zhí)行所有任務(wù)。下面是從上面的Freestyle轉(zhuǎn)換而來的一個
WSPACE = '/var/jenkins/workspace/Directory_Name/' BRWSPACE = '/var/jenkins/workspace/' pipeline { agent { node { label 'Node_Name' customWorkspace "${WSPACE}" } } //清空構(gòu)建目錄 stages { stage('Cleaning up the previous directory') { steps { echo 'Deleteing the directory' sh "rm -rf /var/jenkins/workspace/Directory_Name/* " } } // 下載代碼和依賴 stage('Checking out build repo and its dependencies') { steps { dir("${WSPACE}/RepoName") { git branch: 'master', credentialsId: 'UserName', url: 'https://github.com/path/repo.git' } dir("${WSPACE}/dir") { git branch: 'master', credentialsId: 'UserName', url: 'https://github.com/path/repo1.git' } dir("${WSPACE}/dir3") { git branch: 'master', credentialsId: 'UserName2', url: 'https://github.com/path/repo4.git' } } } //執(zhí)行構(gòu)建 stage('Versioning and executing the build') { steps { dir ("${WSPACE}/repo1") { script{ sh label: '', script: '''/usr/bin/env cd /var/jenkins/workspace/ original=`cat patch_info` MAJOR=`cat patch_info | cut -d "." -f1` MINOR=`cat patch_info | cut -d "." -f2` PATCH=`cat patch_info | cut -d "." -f3` New_Value=`expr $PATCH + 1` New_Version=$MAJOR.$MINOR.$New_Value sed -i "s/$original/$New_Version/g" patch_info echo "$New_Version" cd /var/jenkins/workspace/path/repo4/ echo "Starting the Unit Testing" export GOPATH=$HOME/go export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin make format make clean build if make unit-test ; then cd /var/jenkins/workspace/path/repo1/dir else cd /var/jenkins/workspace/path/repo2/dir2 fi if make unit-test ; then echo " unit testing completed" fi ''' } } } } //發(fā)布HTML報告 stage ('Publish HTML Report') { steps { dir ("/jenkins/workspace/") { script{ sh label: '', script: '''/usr/bin/env perl /jenkins/generate_build_meta_data.pl -jr http://gitlab.com:8080 -bNum ${BUILD_NUMBER} -bName ${JOB_NAME} -o /tmp -t /jenkins/template.html export GOPATH=$HOME/go export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin cd /var/jenkins/workspace/path/repo1/service/ go tool cover -html=c.out -o coverage.html cd /var/jenkins/workspace/path/repo2/dir3 go tool cover -html=c.out -o output.html ''' publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: '/tmp/${JOB_NAME}/${BUILD_NUMBER}', reportFiles: '${JOB_NAME}-${BUILD_NUMBER}-manifest.html', reportName: 'Email Output Subject', reportTitles: '']) } } } } //發(fā)送郵件 stage ('Send Email') { steps { dir ("${WSPACE}/repo4") { 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" } } } } }
上面的代碼為我們提供了編輯的空間及其凝聚力。管道作業(yè)的一個重要特征是階段的輸出以一種吸引人的方式呈現(xiàn),我發(fā)現(xiàn)這很容易理解正在進行的過程。
到此,關(guān)于“怎么將自由風(fēng)格項目轉(zhuǎn)換為管道項目CI/CD”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站欄目:怎么將自由風(fēng)格項目轉(zhuǎn)換為管道項目CI/CD
分享地址:http://weahome.cn/article/jeesgh.html