Skip to content

fixes #677

fixes #677 #25

# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
# Only run when PR is opened to the main branch, and changes are made to these types of R files
on:
pull_request:
paths: ["**.[rR]", "**.[rR]md", "**.[rR]markdown", "**.[rR]nw"]
branches: [main]
name: Style and Lint
jobs:
# First run styler and push style changes to feature branch
style:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repo
uses: actions/checkout@c0a81a463886bb75afe234e07a9fd5bb79219196
with:
fetch-depth: 0
- name: Setup R
uses: r-lib/actions/setup-r@52330cc136b963487918a8867f948ddf954e9e63
with:
use-public-rspm: true
- name: Install dependencies
uses: r-lib/actions/setup-r-dependencies@52330cc136b963487918a8867f948ddf954e9e63
with:
extra-packages: any::styler
needs: styler
- name: Enable styler cache
run: styler::cache_activate()
shell: Rscript {0}
- name: Determine cache location
id: styler-location
run: |
cat(
"##[set-output name=location;]",
styler::cache_info(format = "tabular")$location,
"\n",
sep = ""
)
shell: Rscript {0}
- name: Cache styler
uses: actions/cache@v2
with:
path: ${{ steps.styler-location.outputs.location }}
key: ${{ runner.os }}-styler-${{ github.sha }}
restore-keys: |
${{ runner.os }}-styler-
${{ runner.os }}-
- name: Run styler on all files containing R code
run: styler::style_pkg(filetype = c(".R", ".Rmd", ".Rmarkdown", ".Rnw"))
shell: Rscript {0}
- name: Commit and push changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Style Code
# Next run lintr to annotate the PR with anything caught by the linter that wasn't changed by styler
lint:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@c0a81a463886bb75afe234e07a9fd5bb79219196
- uses: r-lib/actions/setup-r@52330cc136b963487918a8867f948ddf954e9e63
with:
use-public-rspm: true
- name: Install lintr
run: install.packages("lintr")
shell: Rscript {0}
- name: Run lintr on the package
run: lintr::lint_package()
shell: Rscript {0}