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

str*_*str 6 continuous-integration github travis-ci

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

要求:

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

有针对GitHub PagesGitHub版本的 Travis提供商.但两者都有局限性,使它们不适合我的要求.

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

M. *_* F. 4

假设您已经拥有用于解析 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 pull命令结束脚本git push(假设 git 在路径中)。
  6. 启用新作业以使其在 Jenkins 中处于活动状态。