CI/CD Pipeline语言1
CI/CD Pipeline 的编写语言取决于所使用的工具,不同工具采用不同的语法风格,但大多基于 YAML、Groovy 或 特定DSL(领域特定语言)。以下是主流工具的详细分类:
一、基于 YAML 的 Pipeline
1. GitHub Actions
- 语法语言:YAML
- 特点: 使用 workflow.yml 文件定义流程内置丰富的官方 Actions(可复用的模块)
2. GitLab CI/CD
- 语法语言:YAML
- 特点: 文件名为 .gitlab-ci.yml支持动态环境、父子Pipeline等高级特性
3. Azure Pipelines
- 语法语言:YAML
- 特点: 文件名为 azure-pipelines.yml深度集成微软生态(如Azure资源)
二、基于 Groovy 的 Pipeline
Jenkins (Declarative Pipeline)
- 语法语言:Groovy(一种JVM动态语言)
- 特点: 支持脚本化和声明式两种风格灵活性高,可调用Java库
三、其他专用语言/DSL
1. CircleCI
- 语法语言:YAML(但配置结构与GitHub/GitLab不同)
2. Tekton
- 语法语言:YAML(Kubernetes原生CI/CD工具)
3. Bash/Shell脚本
- 简单场景:直接编写Shell脚本触发流程
四、如何选择?
GitHub Actions | YAML | GitHub项目,轻量级Pipeline | 低 |
GitLab CI | YAML | 企业级CI/CD,K8s集成 | 中 |
Jenkins | Groovy | 高度定制化,复杂流水线 | 高 |
CircleCI | YAML | 云原生项目,快速配置 | 低 |
五、为什么YAML成为主流?
- 易读性:缩进结构清晰,非技术人员也能理解
- 工具友好:易于被程序解析和生成
- 跨平台:几乎所有现代CI工具都支持YAML
六、注意事项
- 缩进敏感:YAML对空格数要求严格(建议用2空格缩进)
- 转义字符:特殊符号(如
:
)需加引号 - 变量注入:不同工具变量语法差异大 GitHub: ${{ secrets.KEY }}GitLab: $CI_COMMIT_REF_NAMEJenkins: ${env.BUILD_NUMBER}
掌握这些语法后,可根据团队技术栈选择最适合的工具。
进阶高级测试工程师 文章被收录于专栏
《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart