我为我的R包存储库设置了一个pkgdown
工作流。.github/workflows/pkgdown.yaml
文件:
on:
push:
branches: [main, master]
release:
types: [published]
workflow_dispatch:
name: pkgdown
jobs:
pkgdown:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- uses: r-lib/actions/setup-pandoc@v1
- uses: r-lib/actions/setup-r@v1
with:
use-public-rspm: true
- uses: r-lib/actions/setup-r-dependencies@v1
with:
extra-packages: pkgdown
needs: website
- name: Deploy package
if: contains(env.isPush, 'true')
run: |
git config --local user.email "actions@github.com"
git config --local user.name "GitHub Actions"
Rscript -e 'pkgdown::deploy_to_branch(new_process = FALSE)'
pkgdown
工作流工作正常,但它无法更新GitHub页面。
我按照GitHub文档中的解释设置了gh-pages
分支,因此工作流程pages-build-deployment
存在,但当我推main
分支时,它不运行。
我意识到问题出在if: contains(env.isPush, 'true')
行。条件既不是true
也不是false
,因为在env
下没有属性isPush
,因此出现
run: |
git config --local user.email "actions@github.com"
git config --local user.name "GitHub Actions"
Rscript -e 'pkgdown::deploy_to_branch(new_process = FALSE)'
从未被执行过。
要解决这个问题,修改env
部分:
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
isPush: ${{ github.event_name == 'push' }}
或者去掉run
命令前的if
条件。