CI/CD Pipeline语言1

CI/CD Pipeline 的编写语言取决于所使用的工具,不同工具采用不同的语法风格,但大多基于 YAMLGroovy特定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成为主流?

  1. 易读性:缩进结构清晰,非技术人员也能理解
  2. 工具友好:易于被程序解析和生成
  3. 跨平台:几乎所有现代CI工具都支持YAML

六、注意事项

  1. 缩进敏感:YAML对空格数要求严格(建议用2空格缩进)
  2. 转义字符:特殊符号(如:)需加引号
  3. 变量注入:不同工具变量语法差异大 GitHub: ${{ secrets.KEY }}GitLab: $CI_COMMIT_REF_NAMEJenkins: ${env.BUILD_NUMBER}

掌握这些语法后,可根据团队技术栈选择最适合的工具。

进阶高级测试工程师 文章被收录于专栏

《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart

全部评论

相关推荐

#腾讯云智研发2025实习生招聘# 一面比较简单, 面试官人很好 , 会引导回答1. 自我介绍2. Go语言 中 Hash冲突如何解决3. 链地址法的优缺点4. Java中的HashMap中如何处理Hash冲突5. 进程,线程 的本质区别? 协程的优势 , 特点?6. 用Go的协程遇到过哪些问题?7. 子协程panic会导致什么问题? 一般如何解决?8. TCP三次握手过程,四次挥手9. 四次挥手之后 , 使用linux命令查看会有一个time_wait , 这个有什么含义?10. TCP链接为什么需要做三次握手,四次挥手这样一个很重的事情?11. 客户端经过三次握手建立链接, 如何维持这个链接?12. 使用过什么数据库?13. B+树的优势?14. 什么情况比较适合建立索引?15. MySQL事务隔离级别16. 可重复读如何完全解决幻读问题?17. 有做个权限相关的系统吗? (刚好有一个项目做过这种功能)18. 腾讯云的文档系统 , 希望做一个权限系统设计 , 如何实现?19. 如何应对突增的流量? 如何设计一个智能的流量调度系统20. 让手撕一个根据任务优先级执行任务的调度系统, 但是正在写代码过程中 , 面试官突然看到了我有一个lru.go的文件 , 就没让我继续写了, 让我去介绍一下那个lru算法21.反问
查看21道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务