Automatic readme update #88
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
# Reproduce locally by running: | |
# ```r | |
# pak::pak(c("any::rmarkdown", "any::usethis", ".")) | |
# writeLines( | |
# knitr::knit_expand( | |
# "README.Rmd", | |
# packagename = read.dcf("DESCRIPTION", "Package"), | |
# gh_repo = usethis:::github_remote_list()$repo_spec | |
# ), | |
# "README_expanded.Rmd" | |
# ) | |
# rmarkdown::render( | |
# "README_expanded.Rmd", | |
# output_file = "README.md", | |
# output_dir = "." | |
# ) | |
# unlink("README_expanded.Rmd") | |
# ``` | |
name: render-readme | |
# Controls when the action will run. Triggers include: | |
# | |
# - button trigger from github action page | |
# - on changes to readme.Rmd | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
# This may seem like a no-op but it prevents triggering on tags | |
# We use '**' rather '*' to accomodate names like 'dev/branch-1' | |
- '**' | |
paths: | |
- 'README.Rmd' | |
- '.github/workflows/render_readme.yml' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: write | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
render-readme: | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout repos | |
uses: actions/checkout@v4 | |
- name: Setup R | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
use-public-rspm: true | |
- name: Setup pandoc | |
uses: r-lib/actions/setup-pandoc@v2 | |
- name: Install dependencies | |
uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
extra-packages: any::rmarkdown, local::. | |
- name: Compile the readme | |
run: | | |
writeLines( | |
knitr::knit_expand( | |
"README.Rmd", | |
packagename = read.dcf("DESCRIPTION", "Package"), | |
gh_repo = Sys.getenv("GITHUB_REPOSITORY") | |
), | |
"README_expanded.Rmd" | |
) | |
rmarkdown::render( | |
"README_expanded.Rmd", | |
output_file = "README.md", | |
output_dir = "." | |
) | |
shell: Rscript {0} | |
- name: Commit files | |
run: | | |
git config --local user.email "action@github.com" | |
git config --local user.name "GitHub Action" | |
git add README.md | |
# Also add README figures if they exist | |
if [ -d man/figures ] | |
then | |
git add man/figures/ | |
fi | |
git diff-index --quiet HEAD || git commit -m "Automatic readme update" | |
git pull --rebase origin ${{ github.ref.name }} | |
git push origin || echo "No changes to push" |