Merge pull request #189 from RConsortium/188_pilot3_completion_blog_post #154
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
workflow_dispatch: | |
workflow_call: | |
inputs: | |
r-version: | |
description: 'The version of R to use' | |
default: '4.2' | |
required: false | |
type: string | |
skip-multiversion-docs: | |
description: 'Skip creation of multi-version docs' | |
default: false | |
required: false | |
type: boolean | |
multiversion-docs-landing-page: | |
description: 'Ref to use for the multiversion docs landing page' | |
default: main | |
required: false | |
type: string | |
push: | |
branches: | |
- main | |
- devel | |
- pre-release | |
name: Documentation | |
concurrency: | |
group: pkgdown-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
pkgdown: | |
name: pkgdown | |
runs-on: ubuntu-20.04 | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
if: > | |
!contains(github.event.commits[0].message, '[skip docs]') | |
steps: | |
##################### BEGIN boilerplate steps ##################### | |
- name: Get branch names | |
id: branch-name | |
uses: tj-actions/branch-names@v5.4 | |
- name: Checkout repo (PR) 🛎 | |
uses: actions/checkout@v3 | |
if: github.event_name == 'pull_request' | |
with: | |
ref: ${{ steps.branch-name.outputs.head_ref_branch }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
if: github.event_name != 'pull_request' | |
with: | |
ref: ${{ steps.branch-name.outputs.head_ref_branch }} | |
- name: Normalize inputs | |
id: normalizer | |
run: | | |
function normalize() { | |
local var=$1 | |
if [ "$var" == "" ] | |
then { | |
var=$2 | |
} | |
fi | |
echo ${var} | |
} | |
R_VERSION=$(normalize ${{ inputs.r-version }} 4.2) | |
DOCS_LANDING_PAGE=$(normalize ${{ inputs.multiversion-docs-landing-page }} main) | |
echo "R_VERSION=$R_VERSION" >> $GITHUB_OUTPUT | |
echo "DOCS_LANDING_PAGE=$DOCS_LANDING_PAGE" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Setup R | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ steps.normalizer.outputs.R_VERSION }} | |
- name: Restore cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.local/share/renv | |
~/.staged.dependencies | |
key: ${{ runner.os }}-renv-${{ hashFiles('**/renv.lock') }} | |
restore-keys: ${{ runner.os }}-renv- | |
- name: Setup pandoc | |
uses: r-lib/actions/setup-pandoc@v2 | |
- name: Run Staged dependencies | |
uses: insightsengineering/staged-dependencies-action@v1 | |
with: | |
run-system-dependencies: true | |
enable-check: false | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
##################### END boilerplate steps ##################### | |
- name: Install package | |
run: renv::install(".") | |
shell: Rscript {0} | |
- name: Publish documentation | |
run: | | |
git config --local user.email "actions@github.com" | |
git config --local user.name "GitHub Actions" | |
SUBDIR_OPTION="" | |
if [ "${{ inputs.skip-multiversion-docs }}" != "true" ] | |
then { | |
SUBDIR_OPTION="subdir = \"${GITHUB_REF##*/}\"," | |
} | |
fi | |
Rscript - <<EOF | |
pkgdown::deploy_to_branch( | |
new_process = FALSE, | |
${SUBDIR_OPTION} | |
clean = TRUE | |
) | |
EOF | |
multi-version-docs: | |
name: Multi-version docs | |
needs: pkgdown | |
runs-on: ubuntu-latest | |
if: > | |
!inputs.skip-multiversion-docs && | |
!contains(github.event.commits[0].message, '[skip docs]') | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
with: | |
path: ${{ github.event.repository.name }} | |
ref: "gh-pages" | |
- name: Normalize inputs | |
id: normalizer | |
run: | | |
function normalize() { | |
local var=$1 | |
if [ "$var" == "" ] | |
then { | |
var=$2 | |
} | |
fi | |
echo ${var} | |
} | |
DOCS_LANDING_PAGE=$(normalize ${{ inputs.multiversion-docs-landing-page }} main) | |
echo "DOCS_LANDING_PAGE=$DOCS_LANDING_PAGE" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Create and publish docs | |
uses: insightsengineering/r-pkgdown-multiversion@v2 | |
with: | |
path: ${{ github.event.repository.name }} | |
default-landing-page: "${{ steps.normalizer.outputs.DOCS_LANDING_PAGE }}" |