我们有几个Jenkins实例,有超过400个工作。虽然它被用作CI工具,但由于所有的集成和大量的服务,它相当复杂。我们有三个仓库可以使用Jenkins:
- 带有作业定义的作业dsl 与大多数管道定义(在jenkins文件中定义了许多自定义管道)共享的库
- JCasC
虽然我都是为了进步,但我有点不愿意过渡到Github Actions,因为它不仅需要很多时间,而且Jenkins实现的复杂性可能不太容易实现Github Actions。尽管如此,管理层还是决定削减詹金斯的维护成本。
有谁走过这条路,它看起来很复杂吗?你是否在GH中实现了与Jenkins相同级别的定制和抽象?
我有使用Github Actions的经验,但仅限于较小的应用程序,而且我绝对没有使用GH用于复杂系统的经验。
虽然从Jenkins到GitHub Actions的迁移是官方文档(并且,正如Benjamin W在评论中指出的,通过自动导入辅助),但它需要以下困难:
- 代码访问:Jenkins是自托管的,可以访问自托管的代码。
除非你的代码已经在GitHub上,否则GitHub Action将无法访问相同的自托管代码以在其运行器上检查它。
使用GHE (GitHub for Enterprise),您可以使用自托管运行器…但这就相当于你现在的Jenkins设置。
对于机密的、专有的企业代码,简单地将代码托管在GitHub上并不总是可能的。
-
Jenkins插件:你必须重新实现它们到相应的GitHub动作,或者检查是否有一个已经匹配你的需要
-
发布:GitHub Action可以将其管道的结果存储为工件。同样,根据企业项目的敏感性质,这可能是可接受的,也可能是不可接受的。