-
Notifications
You must be signed in to change notification settings - Fork 1.3k
130 lines (110 loc) · 4.27 KB
/
Copy pathR-CMD-check.yaml
File metadata and controls
130 lines (110 loc) · 4.27 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# 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
#
# NOTE: This workflow is overkill for most R packages and
# check-standard.yaml is likely a better choice.
# usethis::use_github_action("check-standard") will install it.
on:
push:
branches: [main, master]
paths-ignore:
- 'inst/examples/**'
- '_pkgdown.yml'
- 'pkgdown/**'
- '.github/workflows/pkgdown.yaml'
- '.github/workflows/Book.yaml'
pull_request:
branches: [main, master]
paths-ignore:
- 'inst/examples/**'
- '_pkgdown.yml'
- 'pkgdown/**'
- '.github/workflows/pkgdown.yaml'
- '.github/workflows/Book.yaml'
workflow_dispatch:
name: R-CMD-check
concurrency:
# Use github.run_id on main branch
# Use github.event.pull_request.number on pull requests, so it's unique per pull request
# Use github.ref on other branches, so it's unique per branch
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [Pandoc ${{matrix.config.pandoc}}]
strategy:
fail-fast: false
matrix:
config:
# testing R release with latest pandoc version and their dev version
- {os: windows-latest, pandoc: 'latest', r: 'release'}
- {os: macOS-latest, pandoc: 'latest', r: 'release'}
- {os: ubuntu-latest, pandoc: 'latest', r: 'release'}
- {os: ubuntu-latest, pandoc: 'devel', r: 'release'}
# testing older pandoc versions
- {os: ubuntu-latest, pandoc: '3.6.3', r: 'release'}
# testing other R versions
- {os: ubuntu-latest, pandoc: 'latest', r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, pandoc: 'latest', r: 'oldrel-1'}
- {os: ubuntu-latest, pandoc: 'latest', r: 'oldrel-2'}
- {os: ubuntu-latest, pandoc: 'latest', r: 'oldrel-3'}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
permissions:
actions: read
steps:
- name: Start HTML validation server
run: |
docker run --rm -p 8888:8888 -d ghcr.io/validator/validator:latest &&
echo "W3C_MARKUP_VALIDATOR_BASEURL=http://0.0.0.0:8888" >> "$GITHUB_ENV"
if: runner.os == 'Linux'
shell: bash
- uses: actions/checkout@v4
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true
- name: change temp dir
if: runner.os == 'Windows'
run: echo "TMPDIR=${{ runner.temp }}" >> $GITHUB_ENV
shell: bash
- uses: r-lib/actions/setup-tinytex@v2
env:
# install full prebuilt version
TINYTEX_INSTALLER: TinyTeX
- name: Add some R options for later steps
run: |
cat("\noptions(tinytex.verbose = TRUE)\n", file = "~/.Rprofile", append = TRUE)
cat(readLines("~/.Rprofile"), sep = "\n")
shell: Rscript {0}
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
- name: Remove default installed Pandoc
if: runner.os == 'Linux'
run: sudo dpkg -r pandoc
- uses: r-lib/actions/setup-pandoc@v2
if: matrix.config.pandoc != 'devel'
with:
pandoc-version: ${{ matrix.config.pandoc }}
- uses: cderv/actions/setup-pandoc-nightly@nightly-pandoc
if: matrix.config.pandoc == 'devel'
- name: Pandoc and Tinytex info
run: |
rmarkdown::find_pandoc()
tinytex::tlmgr("--version")
tinytex::tl_pkgs()
shell: Rscript {0}
- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
- name: Test coverage
if: success() && runner.os == 'Linux' && matrix.config.r == 'release' && matrix.config.pandoc == '2.7.3'
run: |
pak::pkg_install('covr')
covr::codecov()
shell: Rscript {0}