我在GitHub上维护一个公共存储库,其中仅对一个YAML文件进行更改。我正在寻找一个解决该文件的解决方案,以根据其按下每个按钮和生成文件。本质上,管道或CI应解析文件并创建许多不同的标记文件。这些文件(或更具体地说,是对这些文件的更改),然后应将其推回存储库。
要求:
- 手动更改YAML文件,并且应将Markdown文件的自动更改都推到Master Branch。
- 应该保留版本的历史记录(例如,强制推动可能行不通)。
- 生成了任意数量的文件。
有travis提供商用于GitHub页面和GitHub版本。但是两者都有使它们不适合我的要求的局限性。
使用什么工具/CI/管道可以在GitHub上实现?我希望与自托CI相比。
假设您已经有了可以解析YAML文件并生成Markdown Files的程序/脚本,我可以为您提供一些有关如何从 Jenkins CI中做到这一点的见解。当我从运行自己的实例中汲取经验时,还有一些托管选项,例如CloudBees,您可以探索。
- 创建一个新的詹金斯自由泳项目。
- 在"源代码管理"部分下,配置您的github项目坐标。
- 在构建触发部分下,将更改推向github '选项时,激活'构建。这将在您将新版本的yaml文件推入存储库中启动CI作业。
- 在"构建"部分下,添加执行外壳构建步骤。
- 在Shell步骤中,启动处理YAML文件/生成.md文件的程序或脚本。通过添加
git add .
,git commit -m "message"
,git pull
和git push
命令来结束脚本(假设Git在路径中)。 - 使新工作使其在詹金斯(Jenkins)中活跃。
您现在可以使用存储库的免费github操作选项来执行此操作。您需要将此步骤放入您的YAML文件中。
- name: Commit back to GitHub
run: |
git config --global user.name "github-actiuons[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add -A
git commit -m "Updating some file"
git push
市场上有一些项目,但它们对我不起作用。
机器人的电子邮件基于此线程:
https://github.community/t/github-actions-bot-email-address/17204
- 更新提交消息。
- 如果您决定在文件夹中推出特定文件,请注意文件夹路径。