GitHub管道/ CI生成文件并将它们推送回存储库

时间:2017-12-03 11:47:27

标签: github continuous-integration travis-ci

我在GitHub上维护一个公共存储库,只对一个YAML文件进行更改。我正在寻找一种解决方案,在每次推送时处理该文件并根据它生成文件。本质上,管道或CI应该解析文件并创建许多不同的markdown文件。然后应将这些文件(或更具体地说,对这些文件的更改)推送回存储库。

要求:

  • 手动更改YAML文件并自动更改markdown文件都应该推送到主分支。
  • 应保留版本历史记录(例如,强制推送可能不起作用)。
  • 生成了任意数量的文件。

GitHub PagesGitHub Releases有Travis提供商。但两者都有局限性,使它们不适合我的要求。

使用什么工具/ CI /管道可以在GitHub上实现?我更喜欢服务而非自托管CI。

1 个答案:

答案 0 :(得分:3)

假设您已经有程序/脚本来解析YAML文件并生成Markdown文件,我可以通过 Jenkins CI 为您提供一些有关如何执行此操作的见解。虽然我从运行自己的实例中汲取了我的经验,但也有托管的选项,例如您可以探索的CloudBees

  1. 创建一个新的Jenkins Freestyle项目。
  2. 在“源代码管理”部分下,配置GitHub项目坐标。
  3. 在“构建触发器”部分下,在将更改推送到GitHub时激活' 构建'选项。这会在您将新版本的YAML文件推送到存储库时启动CI作业。
  4. 在构建部分下,添加一个执行shell构建步骤。
  5. 在shell步骤中,启动处理YAML文件的程序或脚本/生成.md文件。通过添加git add .git commit -m "message"git pullgit push命令来结束脚本(假设git位于路径中)。
  6. 启用新作业以使其在Jenkins中处于活动状态。