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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitHub管道/ CI生成文件并将它们推送回存储库相关的知识,希望对你有一定的参考价值。

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

要求:

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

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

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

答案

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

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

以上是关于GitHub管道/ CI生成文件并将它们推送回存储库的主要内容,如果未能解决你的问题,请参考以下文章

Git如何签出提交进行一些更改并将其推送回相同的提交

来自私人 github 存储库的 Pip install wheel

如何从 gitlab CI 管道中推送到仓库?

如何更新堆栈并将克隆的应用程序推送到 Heroku [重复]

新 ECS 任务定义的 CI/CD

通过 CI runner 将文件推送到 gitlab-ci