r4ds/.github/workflows/build_book.yaml

85 lines
2.3 KiB
YAML

on:
push:
branches:
- master
pull_request:
branches:
- master
schedule:
# run every day at 11 PM
- cron: '0 23 * * *'
name: Build book
env:
isExtPR: ${{ github.event.pull_request.head.repo.fork == true }}
jobs:
build:
runs-on: macOS-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup R
uses: r-lib/actions/setup-r@master
- name: Setup pandoc
uses: r-lib/actions/setup-pandoc@master
- name: Get R version
id: get-r-version
run: |
echo "::set-output name=version::$(Rscript -e 'cat(as.character(getRversion()))')"
shell: bash
- name: Cache R packages
uses: actions/cache@v2
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-${{ steps.get-r-version.outputs.version }}-3-
- name: Install pak
run: |
install.packages("pak", repos = "https://r-lib.github.io/p/pak/dev/")
shell: Rscript {0}
- name: Install dependencies
run: |
pak::local_install_dev_deps()
shell: Rscript {0}
- name: Cache bookdown results
uses: actions/cache@v2
with:
path: _bookdown_files
key: bookdown-3-${{ hashFiles('**/*Rmd') }}
restore-keys: bookdown-3-
- name: Build site
run: |
# Allows [implcit heading links] to work; will need to convert
# to explicit before switching to visual editor
options(bookdown.render.file_scope = FALSE)
bookdown::render_book("index.Rmd")
shell: Rscript {0}
- name: Deploy to Netlify
if: contains(env.isExtPR, 'false')
id: netlify-deploy
uses: nwtgck/actions-netlify@v1.1
with:
publish-dir: './_book'
production-branch: master
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message:
'Deploy from GHA: ${{ github.event.pull_request.title || github.event.head_commit.message }} (${{ github.sha }})'
enable-pull-request-comment: false
enable-commit-comment: false
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_2E }}
timeout-minutes: 1