-
Notifications
You must be signed in to change notification settings - Fork 85
85 lines (72 loc) · 2.57 KB
/
style-and-lint.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# 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}