使用 Jenkins 進行自動化部署

在使用 Jenkins 進行自動化部署時,通常從 FreeStyle 構建開始,隨著業務增長,管理多個 Job 變得低效。通過 Pipeline 創建 Job,并使用 Jenkinsfile 存儲在項目倉庫中,提高了靈活性和可追溯性。

Pipeline 示例結構

以下是一個基礎的 Pipeline 示例,用于定義自動構建過程和指定在哪個節點運行。

pipeline {
    agent any
    stages {
        stage("Build") {
            steps {
                sh 'Hello World'
            }
        }
    }
    post {
        always {
            sh 'Hello World'
        }
    }
}

分支 checkout

在配置 Pipeline 時,只需執行以下命令即可指定 SCM 版本倉庫地址。

checkout scm

wrap 用法

在 Jenkinsfile 中,wrap 可以替代 FreeStyle 中的 Build Environment 管理設置。

wrap([$class: 'TestInProgressBuildWrapper']) {
    sh '''
        mvn test
    '''
}

step 用法

使用 step 在 FreeStyle Build 過程中執行相關步驟。

step([$class: 'Publisher', reportFilenamePattern: '**/testng-results.xml'])

環境變量

通過 ${}$XXX 獲取 Build 變量。

sh '${BUILD_ID}'

完整示例

此示例展示如何使用 Maven 進行自動化測試,并通過報告界面展示結果。

pipeline {
    agent { node { label "agent-2" } }
    tools {
        jdk "8u91"
        maven "3.3.9"
    }
    stages {
        stage("Build") {
            steps {
                wrap([$class: 'TestInProgressBuildWrapper']) {
                    checkout scm
                    sh '''
                        echo "PATH = ${PATH}"
                        echo "M2_HOME = ${M2_HOME}"
                        mvn test
                    '''
                }
            }
        }
    }
    post {
        always {
            step([$class: 'Publisher', reportFilenamePattern: '**/testng-results.xml'])
        }
    }
}

創建 Job 接口

Jenkins 提供了 API 來創建 Job,地址為 http://xxx/createItem?name=$jobname。請求類型為 POSTContent-Type 必須是 application/xmlBody 為 XML 格式。

BRANCH_NAME="test" && 
XML_DATA=" 

false 

2 

https://gitlab.xxxx.com/xxx/autotester.git 
049ef8c4-d01c-4304-b1eb-22d26ef26a8e 

*/${BRANCH_NAME} 

false 

Jenkinsfile 
true 

false 
" && 
curl -u username:password -H "Content-Type: application/xml" -XPOST https://jenkins.xxx.com/createItem?name=${BRANCH_NAME} -d "${XML_DATA}"

相關文檔

FAQ

問:什么是 AtomCI?

問:Jenkins 如何提高自動化部署的靈活性和可追溯性?

問:如何在 Jenkins Pipeline 中使用 wrapstep

問:如何使用 Jenkins API 創建自定義 Jenkins pipeline?

問:如何在 Jenkins Pipeline 中使用環境變量?

上一篇:

MinIO API是什么以及如何使用

下一篇:

使用MinIO搭建自己的文件存儲服務
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費