jenkins~管道Pipeline的使用,再見jenkinsUI


Pipeline在Jenkins里的作用

最近一直在使用jenkins進行自動化部署的工作,開始覺得很爽,省去了很多重復的工作,它幫助我自動拉服務器的代碼,自動還原包包,自動編譯項目,自動發布項目,自動打包鏡像,自動上傳倉庫,自動啟動docker服務,這一系列動作都是自動化的,聽起來確實很絢,但是,如果項目多了,要進行管理和調整也挺麻煩的,而且修改記錄是沒有的,不可追蹤,而就在這時候,pipeline出現了,它就是jenkins部署的代碼方式,它使用groovy腳本編寫,有了它,就不用使用jenkins向導了,有了它,你的jenkins變更就可以追蹤了(因為它的文件可以放在git,svn上)

 

優點

事實上groovy腳本類似於一個json文件,你可以在里面定義jenkins的節點(分發節點,負載均衡,一台服務器肯定扛不住),編寫CI、CD的每個步驟,編譯項目,測試項目,打包項目,啟動項目,發郵件通知,總之,你用jenkinsUI向導可以實現的,用pipeline都可以實現!

groovy的腳本編寫種類有有聲明風格和腳本風格兩種,根據個人喜好去選擇!

從代碼中分析語法

@Library('common-library') _   //引用一個外部類型 
pipeline{
    agent any //聲明全局分發節點
    
    environment {//聲明全局變量
        imageName = "svt/test"
        serviceName = "svt-test"
    }
    
    stages{ //定義構建的步驟
        stage('CI'){//步驟1,名稱為CI,自定義即可
            agent {label 'build'}//指定一個分發節點 
            steps{//CI步驟里的具體動作
                cleanWs()
                gitScm("${repoUrl}","${branch}","${credentialsId}")//從git上拉一個代碼下到build節點
                               }
                //把這個項目在docker提供的aspnetcore鏡像里運行
                dir("${deployPath}") {
                    sh "docker run --rm --tty --user root -v ${WORKSPACE}/:/src/ --workdir=/src/deploy/ microsoft/dotnet sh publish.sh"
                    buildImage("${imageName}")
                }
            }
        }
        
        stage('ServiceRun'){
            agent {label 'svt'}//啟動docker服務的節點
            steps{
              startService("${serviceName}","${imageName}")//啟動服務
            }
        }
    }

通過上面的代碼介紹,大家應該對jenkins pipeline有一個了解了,事實上,它和gitlab的pipeline非常類似,都是一個流程,從上到下的運行!

在互聯網高度發展的今天,大叔覺得,掌握一個CI、CD工具非常必要!

感謝各位的閱讀!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM