
Python调用Google Bard API 完整指南
本文详细介绍了如何通过Jenkins API创建自定义的Jenkins Pipeline,从而提高自动化部署的效率。使用Pipeline的方式可以减少手动配置的工作量,并增强配置的灵活性和可追溯性。本文还包括了如何使用Jenkinsfile进行版本管理,以及如何通过Jenkins提供的API接口快速创建Job,适用于Jenkins 2.46.2版本。
AtomCI 是一个支持自定义 Docker 运行镜像和环境变量定义的工作流工具。可以通过查看 sample/sample.go
文件获取示例代码。
在使用 Jenkins 进行自动化部署时,通常从 FreeStyle
构建开始,随着业务增长,管理多个 Job
变得低效。通过 Pipeline
创建 Job
,并使用 Jenkinsfile
存储在项目仓库中,提高了灵活性和可追溯性。
以下是一个基础的 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'])
}
}
}
Jenkins 提供了 API 来创建 Job,地址为 http://xxx/createItem?name=$jobname
。请求类型为 POST
,Content-Type
必须是 application/xml
,Body
为 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}"
sample/sample.go
获取更多信息。Pipeline
功能创建 Job
,并将 Jenkinsfile
存储在项目仓库中,可以提高自动化部署的灵活性和可追溯性。这种方法比传统的 FreeStyle
构建更加高效,尤其是在管理多个 Job
时。wrap
和 step
?wrap
可以替代 FreeStyle 中的 Build Environment
管理设置,例如使用 wrap([$class: 'TestInProgressBuildWrapper'])
包裹 mvn test
。step
用于在 FreeStyle Build 过程中执行相关步骤,例如 step([$class: 'Publisher', reportFilenamePattern: '**/testng-results.xml'])
。http://xxx/createItem?name=$jobname
,请求类型为 POST
,Content-Type
必须是 application/xml
,Body
为 XML 格式。示例代码中详细展示了如何通过 API 使用 XML 数据来创建自定义 Jenkins pipeline。${}
或 $XXX
的形式获取 Build 变量。例如,使用 sh '${BUILD_ID}'
可以在 shell 中输出 BUILD_ID 变量的值。