在编写 R 包时,我更喜欢使用
usethis::use_github_actions()
设置 CI,这会在根目录中创建一个 .github/
目录,其中 GH 操作作业旨在运行:https://stackoverflow.com/a/72268873/ 8400969。
我有一个遗留存储库,其中包含 /R
目录中的多个 R 包,以及其他目录中的一些其他内容(例如 python 应用程序),并且希望为 R 包设置持续集成(每个包单独,理想情况下)而不将每个移动到自己的存储库)。
如何设置 GH 操作工作流程,以便它们分别检查 /R
父目录中的每个 R 包?我是否能够使用 usethis 中的工具来创建具有这样的存储库结构的徽章、pkgdown 网站等?
很难知道什么是可重现的示例,但也许这是一个很好的起点:一个目录中包含两个成熟的 R 包,每个包(当前)都有自己的
.github
子目录,提供 GH 操作的说明。
在 macOS 上输入 shell 来创建的命令:
mkdir example_repo
cd example_repo
git clone https://github.com/r-lib/scales.git
git clone https://github.com/r-lib/roxygen2
cd roxygen2
rm -rf .git
cd ../scales
rm -rf .git
我通过修改工作流程 (
.github/workflows/R-CMD-check.yaml
) 将 working-directory
设置为 both r-lib/actions/setup-r-dependencies@v2
和 r-lib/actions/check-r-package@v2
指向包子目录来实现此目的。 例如,在我的例子中,工作流程的相关部分如下所示......
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
working-directory: './pkg/grImport2'
- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'
working-directory: './pkg/grImport2'
我在
这里找到了
working-directory
选项。