【问题标题】:Updating R documentation, NAMESPACE and DESCRIPTION files automatically when code is pushed to github将代码推送到 github 时自动更新 R 文档、NAMESPACE 和DESCRIPTION 文件
【发布时间】:2020-07-19 05:48:43
【问题描述】:

我需要知道每当推送到 github 时,我是否可以在 RStudio 或 Teamcity 中自动运行 devtools::document()roxygen2::roxygenise() 命令,而不是在每次推送之前手动运行这些命令。如何才能做到这一点 ?

【问题讨论】:

    标签: r github rstudio teamcity


    【解决方案1】:

    我可以通过运行 .git/hooks/pre-commit 的脚本来完成:R -e 'devtools::document()'。在网上搜索预提交挂钩。设置好钩子后,通过任何接口(Rstudio 或其他任何接口)提交将自动使用它。如果devtools::document() 中发生任何错误,您可以将脚本配置为返回错误,从而防止代码被提交。

    注意运行 devtools::document() 就足够了,第二个 roxygen2::roxygenise() 命令通常不需要!

    最后,我强烈建议不要这样做:在您的编码工作流程中,在提交之前记录包是明智的:它可能会提醒您忘记做的事情。

    【讨论】:

      【解决方案2】:

      pre-commit frameworks 支持各种类型的钩子,例如在提交或推送、合并等时。有一个 R 包 {precommit}(披露:我是维护者)实现了各种钩子,其中一个 roxygenize 钩子。您可以使用precommit::use_precommit() 轻松设置,然后调整.pre-commit-config.yaml

      -   repo: https://github.com/lorenzwalthert/precommit
          rev: v0.2.0
          hooks:
          -   id: roxygenize
              additional_dependencies:
              -  a.dependency.here
              stages: [commit, push]
      

      additional_dependencies 可以用precommit::snippet_generate('additional-deps-roxygenize') 生成。或者,从版本 0.2.0 开始,您可以将 GitHub Actions 或 pre-commit.ci 配置为连续集成服务,以强制执行挂钩并自动修复简单问题(如运行 roxygen),如 vignette 中所述。

      【讨论】:

        猜你喜欢
        • 2016-11-30
        • 1970-01-01
        • 2021-05-21
        • 2018-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 2011-01-16
        相关资源
        最近更新 更多