-
-
Notifications
You must be signed in to change notification settings - Fork 30
136 lines (111 loc) · 4.41 KB
/
R-CMD-check.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
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
131
132
133
# 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]
pull_request:
branches: [main, master]
schedule:
- cron: '0 0 * * 2'
workflow_dispatch:
name: R-CMD-check
jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
strategy:
fail-fast: false
matrix:
config:
- {os: macOS-latest, cache: '~/Library/Application Support/renv', r: 'release'}
- {os: windows-latest, r: 'release'}
# Use 3.6 to trigger usage of RTools35
# As of 2024-06, downlit now requires R >4.0.0 so this should be deprecated.
# - {os: windows-latest, cache: '~\AppData\Local\renv', r: '3.6'}
# use 4.1 to check with rtools40's older compiler
- {os: windows-latest, r: '4.1'}
- {os: ubuntu-22.04, cache: '~/.local/share/renv', r: 'release', cov: 'true'}
- {os: ubuntu-latest, cache: '~/.local/share/renv', r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, cache: '~/.local/share/renv', r: 'release', cov: 'true'}
- {os: ubuntu-latest, cache: '~/.local/share/renv', r: 'oldrel-1'}
- {os: ubuntu-latest, cache: '~/.local/share/renv', r: 'oldrel-2'}
- {os: ubuntu-latest, cache: '~/.local/share/renv', r: 'oldrel-3'}
- {os: ubuntu-latest, cache: '~/.local/share/renv', r: 'oldrel-4'}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RENV_PATHS_ROOT: ${{ matrix.config.cache }}
LANG: "en_US.UTF-8"
steps:
- name: Setup Linux Environment
if: runner.os == 'Linux'
run: |
echo "OS_VERSION=`lsb_release -sr`" >> $GITHUB_ENV
mkdir -p "${{ runner.temp }}/sandbox/"
echo "RENV_PATHS_SANDBOX=${{ runner.temp }}/sandbox/" >> $GITHUB_ENV
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
shell: bash
- name: "Windows: prevent autocrlf"
if: runner.os == 'Windows'
run: git config --global core.autocrlf false
shell: bash
- uses: actions/checkout@v4
- uses: r-lib/actions/setup-pandoc@v2
- name: "Windows: setup TMPDIR"
if: runner.os == 'Windows'
run: |
git config --global core.autocrlf true # reset setting to prevent errors downstream
echo "TMPDIR=${{ runner.temp }}" >> $GITHUB_ENV
shell: bash
- name: "Setup R"
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: "Setup dependencies"
uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
- name: "Restore {renv} cache"
if: runner.os != 'Windows'
uses: actions/cache@v4
with:
path: ${{ env.RENV_PATHS_ROOT }}
key: ${{ runner.os }}-${{ env.OS_VERSION }}-renv-${{ runner.r }}-${{ hashFiles('.github/workflows/R-CMD-check.yaml') }}
restore-keys: |
${{ runner.os }}-${{ env.OS_VERSION }}-renv-${{ runner.r }}-
- name: "Prime {renv} Cache"
if: runner.os != 'Windows'
run: |
renv::settings$snapshot.type("explicit")
renv::init()
system('sudo rm -rf renv.lock renv .Rprofile')
system('git clean -fd -e .github')
system('git restore .')
shell: Rscript {0}
- name: "Session info"
run: |
options(width = 100)
pkgs <- installed.packages()[, "Package"]
sessioninfo::session_info(pkgs, include_base = TRUE)
shell: Rscript {0}
- name: "Check"
uses: r-lib/actions/check-r-package@v2
if: runner.os != 'Windows'
with:
upload-snapshots: true
- name: "Check"
uses: r-lib/actions/check-r-package@v2
if: runner.os == 'Windows'
env:
RENV_PATHS_ROOT: ~
with:
upload-snapshots: true