-
Notifications
You must be signed in to change notification settings - Fork 8
134 lines (117 loc) · 4.9 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
134
on:
push:
paths-ignore:
- 'appveyor.yml'
- 'developmentBuild.sh'
- 'docs/**'
- 'Doxyfile'
- 'etc/**'
- 'lhs.Rproj'
- 'logo.svg'
- 'pkgdown/**'
- 'README.md'
- 'README.Rmd'
- 'refs/**'
- 'SECURITY.md'
- '.github/workflows/docker-builds.yml'
- '.github/workflows/rev-dep-check.yaml'
- '.github/workflows/rhub-check.yml'
- '.github/workflows/pkgdown.yml'
- '.github/workflows/build_readme.yaml'
- '.github/workflows/rhub.yaml'
branches:
- master
tags:
- none
pull_request:
branches:
- master
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: windows-latest, r: 'release'}
- {os: windows-latest, r: 'devel'}
- {os: macOS-latest, r: 'release'}
- {os: macOS-latest, r: 'devel'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel'}
env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
GITHUB_PAT: ${{ secrets.MY_PAT }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: R setup-pandoc@master
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
- name: Pandoc setup-pandoc@master
uses: r-lib/actions/setup-pandoc@v2
- name: Query dependencies
run: |
install.packages('remotes')
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
shell: Rscript {0}
- name: Cache R packages
if: runner.os != 'Windows'
uses: actions/cache@v3
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
- name: Install system dependencies
if: runner.os == 'Linux'
env:
RHUB_PLATFORM: linux-x86_64-ubuntu-gcc
run: |
Rscript -e "remotes::install_github('r-hub/sysreqs')"
sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))")
sudo -s eval "$sysreqs"
sudo apt-get install libcurl4-openssl-dev
- name: Install dependencies
run: |
remotes::install_deps(dependencies = TRUE)
remotes::install_cran("rcmdcheck")
shell: Rscript {0}
- name: Check Standard
if: ( matrix.config.os == 'ubuntu-latest' && matrix.config.r == 'devel' ) == false
env:
_R_CHECK_CRAN_INCOMING_REMOTE_: false
_R_CHECK_LENGTH_1_CONDITION_: true
_R_CHECK_LENGTH_0_LOGIC2_: true
run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check")
shell: Rscript {0}
- name: Install Valgrind (Linux-rdevel only)
if: matrix.config.os == 'ubuntu-latest' && matrix.config.r == 'devel'
run: sudo apt-get install valgrind
- name: Check Valgrind (Linux-rdevel only)
if: matrix.config.os == 'ubuntu-latest' && matrix.config.r == 'devel'
env:
_R_CHECK_CRAN_INCOMING_REMOTE_: false
# https://www.valgrind.org/docs/manual/manual-core.html
VALGRIND_OPTS: "--leak-check=full --track-origins=yes"
# https://www.stats.ox.ac.uk/pub/bdr/memtests/README.txt
RJAVA_JVM_STACK_WORKAROUND: 0
R_DONT_USE_TK: true
run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--use-valgrind"), error_on = "warning", check_dir = "check")
shell: Rscript {0}
- name: Code Coverage
if: matrix.config.os == 'windows-latest' && matrix.config.r == 'release'
run: |
install.packages("covr")
covr::codecov(line_exclusions=list("src/COrthogonalArray.cpp", "src/COrthogonalArray.h", "src/CRandom.h", "src/RStandardUniform.h", "src/ak3.cpp", "src/akconst.cpp", "src/akn.cpp", "src/construct.cpp", "src/GaloisField.h", "src/GaloisField.cpp", "src/geneticLHS.cpp", "src/improvedLHS.cpp", "src/matrix.h", "src/maximinLHS.cpp", "src/oa.cpp", "src/oaLHS.cpp", "src/oaLHSUtility.h", "src/optSeededLHS.cpp", "src/optimumLHS.cpp", "src/order.h", "src/primes.cpp", "src/randomLHS.cpp", "src/runif.cpp", "src/runif.h", "src/rutils.cpp", "src/rutils.h", "src/utilityLHS.cpp", "src/utilityLHS.h", "src/xtn.h", "src/bclibVersion.h", "src/oalibVersion.h", "src/lhslibVersion.h", "src/OACommonDefines.h"))
shell: Rscript {0}
- name: Upload check results
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
path: check