基于JenkinsAPI创建自定义JenkinsPipeline
作者:15726608245 · 2025-03-06 · 阅读时间:4分钟
本文详细介绍了如何通过Jenkins API创建自定义的Jenkins Pipeline,从而提高自动化部署的效率。使用Pipeline的方式可以减少手动配置的工作量,并增强配置的灵活性和可追溯性。本文还包括了如何使用Jenkinsfile进行版本管理,以及如何通过Jenkins提供的API接口快速创建Job,适用于Jenkins 2.46.2版本。
AtomCI 工作流
AtomCI 是一个支持自定义 Docker 运行镜像和环境变量定义的工作流工具。可以通过查看 sample/sample.go 文件获取示例代码。

使用 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。请求类型为 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}"
相关文档
FAQ
问:什么是 AtomCI?
- 答:AtomCI 是一个支持自定义 Docker 运行镜像和环境变量定义的工作流工具。可以通过查看示例代码文件
sample/sample.go获取更多信息。
问:Jenkins 如何提高自动化部署的灵活性和可追溯性?
- 答:通过使用 Jenkins 的
Pipeline功能创建Job,并将Jenkinsfile存储在项目仓库中,可以提高自动化部署的灵活性和可追溯性。这种方法比传统的FreeStyle构建更加高效,尤其是在管理多个Job时。
问:如何在 Jenkins Pipeline 中使用 wrap 和 step?
- 答:在 Jenkinsfile 中,
wrap可以替代 FreeStyle 中的Build Environment管理设置,例如使用wrap([$class: 'TestInProgressBuildWrapper'])包裹mvn test。step用于在 FreeStyle Build 过程中执行相关步骤,例如step([$class: 'Publisher', reportFilenamePattern: '**/testng-results.xml'])。
问:如何使用 Jenkins API 创建自定义 Jenkins pipeline?
- 答:可以通过 Jenkins 提供的 API 创建 Job,API 地址为
http://xxx/createItem?name=$jobname,请求类型为POST,Content-Type必须是application/xml,Body为 XML 格式。示例代码中详细展示了如何通过 API 使用 XML 数据来创建自定义 Jenkins pipeline。
问:如何在 Jenkins Pipeline 中使用环境变量?
- 答:可以通过
${}或$XXX的形式获取 Build 变量。例如,使用sh '${BUILD_ID}'可以在 shell 中输出 BUILD_ID 变量的值。
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 交叉熵的Numpy实现:从理论到实践
- Google DeepMind发布 Genie 3与Shopify:2小时上线电商3D样板间实战
- Gemini Deep Research 技术实战:利用 Gemini Advanced API 构建自动化的深度研究 Agent
- FLUX.1 Kontext API 使用完全指南:解锁文本驱动的智能图像编辑
- 如何防范User-Agent信息伪装引发的API访问风险
- 苹果支付流程:从零开始的接入指南
- 全面掌握 OpenAPI 规范:定义、生成与集成指南
- 深入解析granularity是什么?颗粒度中文详解
- 开发者如何利用缓存技术提升API性能
- Orbitz API 全攻略:旅行社高效整合酒店、航班与租车服务的必读指南
- REST API命名规范的终极指南:清晰度和一致性的最佳实践
- Go:基于 MongoDB 构建 REST API — Fiber 版