1.初次使用流水線
前面我們用自由風格的流水線進行了項目部署,但是自由風格的流水線只能應付一些簡單且項目規模不是很大的部署。為了讓流水線能夠靈活、通用、邏輯清晰且更加容易維護,現在一般企業都是采取使用了Pipeline的方式來對流水線進行構建,從這里起應該就是我從企業部署流水線的一個歷程,另外近期需要對流水線進行改造,那么我也將改造的過程一并在后面寫入。
創建Pipeline項目
image-20250907145013607
image-20250907145137214
image-20250907145235991
這是一條簡單的流水線示例,兄弟們可以先感受下
pipeline {agent { node { label "node47"}}tools {git 'Git'maven 'maven399'jdk 'jdk1701'}environment {var1 = "var1"var2 = "var2"var3 = "var3"RED = "\u001B[31m"GREEN = "\u001B[32m" // 綠色PURPLE = "\u001B[35m" // 紫色RESET = "\u001B[0m" // 重置}options {// 保留構建次數buildDiscarder(logRotator(numToKeepStr: '5'))// 不允許同時執行流水線disableConcurrentBuilds()// 流水線執行的超時時間timeout(time: 25, unit: 'MINUTES')// 構建時的時間信息timestamps()}parameters {string(name: 'BRANCH_TAG', defaultValue: 'master', description: 'Enter the GF branch to checkout')}stages {stage('Checkout') {steps {script {git (credentialsId: "giteeuptest", url: 'https://gitee.com/wolfan_119/spring-boot-3-hello-world-jdk21.git', branch: "${BRANCH_TAG}")}}}stage('Build') {steps {ansiColor('xterm') { // 啟用 AnsiColorecho "${GREEN}項目開始構建${RESET}"echo "${GREEN}環境變量$var1${RESET}"}echo "Building"}}stage('PullProject') {steps {ansiColor('xterm') { // 啟用 AnsiColorecho "${PURPLE}項目推送${RESET}"echo "${PURPLE}環境變量$var2${RESET}"}sh 'echo PullProject'}}stage('Delpoy') {steps {ansiColor('xterm') { // 啟用 AnsiColorecho "${RED}項目部署${RESET}"echo "${RED}環境變量$var3${RESET}"}sh 'echo Delpoy'}}}post {always {sh "echo 構建后總是執行這個步驟"}success {sh "echo 構建成功了執行這個步驟"}failure{sh "echo 構建失敗了執行這個步驟"}aborted{sh "echo 構建取消了執行這個步驟"}}
}
參數簡介
- ?pipeline 用于聲明流水線的標識(有聲名式和腳本式2中風格,但是不用糾結這些)
- ?anget 指定在那個節點執行打包流程 any代表任意節點
- ?tools 指定打包工具(這里是在jenkins中配置好的,之前在工具初始化有提起過)
- ?environment 環境變量,用于定義在流水線執行過程中的一些變量信息
- ?options jenkins自帶的一些配置項
- ?parameters 參數化構建,定義一些特定的參數
- ?stages stages是一個容器,用于包含多個stage。它將流水線的不同階段組織在一起,使得整個構建過程更清晰。每個 stage 可以代表流水線中的一個主要步驟或任務。
- ?stage stage是流水線中的一個單獨的階段,表示構建過程中的一個特定任務或步驟。每個 stage 可以包含一個或多個 steps,并且可以有自己的條件和環境設置。它幫助用戶理解構建的不同部分。
- ?steps steps是在一個 stage 中定義的具體操作或任務,它包含實際執行的命令或腳本,例如編譯代碼、運行測試、部署應用等。每個 step 可以是一個內置的 Jenkins 步驟或自定義的腳本。
- ?post 根據流水線的執行結果(成功、失敗、未穩定等)執行不同的操作,
2.執行下流水線
image-20250906233635498
image-20250906233935513
從這里看Pipeline風格流水線從可視化這里要比自由風格的流水線好很多,這些日子對公司的流水線做些改造,剛好可以一并寫進來,不過更新速度可能會慢一些了!最后歡迎大家入群一起討論運維技術,如果看不見群信息可以私聊