r语言 - 如何添加预提交 git 钩子来检查自述文件.RMD 和索引.已经编织好了?



我有一个带有 pkgdown 文档站点的 R 包。 我想创建一个 git 钩子,这样如果我尝试提交更改并将其推送到README.Rmdindex.Rmd,而不首先编织它们以创建相应的.Md文件,我会收到警告。 现在我只是忘记了。

《R Packages》一书说使用usethis::use_readme_rmd()来创建自述文件,这也将创建git钩子。 但是我已经有自述文件了。Rmd 文件。

如何为现有的.rmd 文件一般,无论是自述文件。RMD 或指数。来自我的 pkgdown 网站? 我想使用usethis包,但如果在该包之外做更简单,我对此持开放态度。

另一种方法是使用 Github Actions 执行此操作,如果那是您的 pkgdown 站点所在的位置。

  1. 在存储库中创建文件夹.github
  2. 在其中创建文件夹workflows
  3. 在其中创建文件render-readme.yml
  4. 将此代码粘贴到该文件中
on:
push:
paths:
- README.Rmd
- Index.Rmd
name: Render README and Index
jobs:
render:
name: Render README and Index
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- uses: r-lib/actions/setup-r@v1
- uses: r-lib/actions/setup-pandoc@v1
- name: Install packages
run: Rscript -e 'install.packages(c("rmarkdown", "knitr"))'
- name: Render README
run: Rscript -e 'rmarkdown::render("README.Rmd", output_format = "md_document")'
- name: Render Index
run: Rscript -e 'rmarkdown::render("Index.Rmd", output_format = "md_document")'
- name: Commit results
run: |
git commit README.md -m 'Re-build README.Rmd' || echo "No changes to commit"
git commit Index.md -m 'Re-build Index.Rmd' || echo "No changes to commit"
git push origin || echo "No changes to commit"
  1. 将其推送到 GitHub,它应该立即开始工作。请注意,处理需要一些时间。单击 GitHub 存储库中的"操作"选项卡以查看进度。

有关示例,请参阅 https://github.com/r-lib/actions。上面的代码改编自此。

请注意,您可能希望将操作分为 2 个文件。render-readme.ymlrender-index.yml.这样,如果操作失败,您将知道哪个文件有问题。

最新更新