GitHub Action中指定安装GitHub版R包失败问题排查
解决GitHub Action中优先安装GitHub版R包依赖的问题
问题根源
你手动安装GitHub版gyro后,执行r-lib/actions/setup-r-dependencies@v2步骤时,该动作会自动读取自有R包的DESCRIPTION文件解析依赖。如果DESCRIPTION里仅声明了gyro而未指定来源,它会默认从CRAN安装,覆盖之前手动安装的GitHub版本。
解决办法
方法一:修改R包的DESCRIPTION文件(推荐)
在自有R包的DESCRIPTION文件中添加Remotes字段,明确指定gyro的GitHub来源:
Imports: gyro Remotes: stla/gyro
这样setup-r-dependencies步骤会自动识别并安装GitHub版gyro,无需手动编写安装指令。GitHub Action YAML可简化为:
- uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::rcmdcheck needs: check - uses: r-lib/actions/check-r-package@v2
方法二:在setup-r-dependencies中指定GitHub版依赖
如果不想修改DESCRIPTION,可以在setup-r-dependencies的extra-packages参数里直接指定GitHub版gyro,该步骤会优先安装指定版本:
- uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: | any::rcmdcheck github::stla/gyro needs: check - uses: r-lib/actions/check-r-package@v2
这种方式下,之前手动安装remotes和gyro的步骤可以完全删除,setup-r-dependencies会自动处理依赖安装。
内容的提问来源于stack exchange,提问作者Stéphane Laurent
相关产品推荐
相关产品推荐

