Centos7 Jenkins Pipline 淺入淺出

準備工作

Jenkins

正式開始

安裝插件

  • 登錄Jenkins後臺-系統管理-插件管理- 可選插件-Pipeline Maven Integration Plugin-直接安裝
  • 回到Jenkins首頁,新建任務,就可以看到,可以構建一個流水線的任務了。
    在這裏插入圖片描述

新建任務

  • 新建一個名爲test-xxl-job-admin-pipline的流水線任務
    在這裏插入圖片描述

案例

  • 接下來嘗試發佈一個項目,以開源的一個java程序xxl-job(定時任務調度)爲例
  • 代碼倉庫的URL爲https://github.com/xuxueli/xxl-job.git
  • 首先我們要分解一下發布一套代碼的步驟,大概如下
    ①通過git clone拉取代碼
    ②通過maven編譯打包java代碼
    ③通過java命令啓動jar包

Pipline

①配置test-xxl-job-admin-pipline
在這裏插入圖片描述
②移到最下方Pipline腳本處
在這裏插入圖片描述
③編寫Pipline腳本(),

  • 格式可以仿照網上的,內容需要根據自己實際情況來寫,例如我希望從https://github.com/xuxueli/xxl-job.git 拉取代碼,那麼我不會寫pipline腳本怎麼辦,jenkins提供了pipline語法生成器
    在這裏插入圖片描述
    -選擇git:Git
    在這裏插入圖片描述
    -輸入項目代碼地址,因爲這個項目是開源的,所有用戶都可以clone(如果是公司的項目,那肯定有gitlab的賬號密碼),點擊生成即可
    在這裏插入圖片描述

Clone的腳本

pipeline {
    agent any
    environment {
    REVISION = "0.0.${env.BUILD_ID}"
  }
    options{
        disableConcurrentBuilds()
        skipDefaultCheckout()
        timeout(time: 1, unit: 'HOURS')
        timestamps()
    }
    parameters{
        string(name: 'PERSON', defaultValue: '測試-字段輸入', description: '請輸入中文')
        booleanParam(name: 'xxl_job_admin', defaultValue: true, description: '是否發佈xxl_job_admin')
        }
    stages {
        stage ("Clone") {
          //
            steps{
                script{
                    if ( params.xxl_job_admin== true ){
                        echo "${params.xxl_job_admin}"
                        echo "xxl_job_admin爲選中狀態"
                        echo "開始拉取代碼"
                        git 'https://github.com/xuxueli/xxl-job.git'
                    }
                    else {
                        echo "xxl_job_admin未選中狀態,跳過"
                    }
                }
            }
        }
    }
}
  • 保存,運行任務-Build with Parameters
    在這裏插入圖片描述
  • 查看控制檯輸出- Console Output在這裏插入圖片描述
  • 就可以看到正在拉取了,第一次拉取是比較慢,因爲外網拉取。對此,我建議,自建gitlab,然後將代碼clone到自己的gitlab(提高代碼clone速度),後期再自建nexus私服(提高編譯時候拉取依賴包的速度)。
    在這裏插入圖片描述
  • 那麼Clone 就到此爲止了

Build編譯打包腳本

  • 因爲clone下來是3個文件夾,而我們只需要打包xxl-job-admin就可以,所以我們只要進入xxl-job-admin再進行打包
    在這裏插入圖片描述
  • 下面是腳本
pipeline {
    agent any
    environment {
    REVISION = "0.0.${env.BUILD_ID}"
  }
    options{
        disableConcurrentBuilds()
        skipDefaultCheckout()
        timeout(time: 1, unit: 'HOURS')
        timestamps()
    }
    parameters{
        string(name: 'PERSON', defaultValue: '測試-字段輸入', description: '請輸入中文')
        booleanParam(name: 'xxl_job_admin', defaultValue: true, description: '是否發佈xxl_job_admin')
        }
    stages {
        stage ("Clone") {
          //
            steps{
                script{
                    if ( params.xxl_job_admin== true ){
                        echo "xxl_job_admin爲選中狀態"
                        echo "開始拉取代碼"
                        git credentialsId: 'db8f1b2a-a0e1-40e2-8be5-840300cd5d0b', url: 'http://git.mifaqianbao.cn:8090/mifa/stib/java/xxl_job_admin.git'
//sh "sudo -u ${tenant} ${url}/${tenant}/deploy.sh stib_data ${choice} ${Branch}"
                    }
                    else {
                        echo "xxl_job_admin未選中狀態,跳過"
                    }
                }
            }
        }
        stage ("Build") {
            steps{
                script{
                    if ( params.xxl_job_admin== true ){
                        echo "xxl_job_admin爲選中狀態"
                        echo "開始編譯代碼"
                        sh "cd xxl_job_admin && mvn clean package -Dmaven.test.skip=true"
                    }
                    else {
                        echo "xxl_job_admin未選中狀態,跳過"
                    }
                }
            }
        }
    }
}
  • 保存後構建即可,可以看到我第一次編譯用了3分16秒,第二次僅僅用了9秒鐘
    在這裏插入圖片描述
    · 打包腳本就到此爲止了

傳輸啓動腳本

  • 接下來就是將編譯好的包傳輸到目標主機並啓動,這個就很簡單了,無非就是scp,kill,start。
  • 這就自己琢磨好了,思路就是這樣,簡簡單單。也可以將步驟分解的再細緻一點。類似的腳本在上一篇文檔中有
    Centos7 Git+Jenkins+Maven發佈

結束語

有疑問的話 歡迎留言,隨時滴滴。基本上工作日的時候都會看一下。

讚賞碼

在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章