forked from duckdb/duckdb
-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (116 loc) · 3.72 KB
/
R.yml
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
135
136
137
138
139
140
141
name: R
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}
cancel-in-progress: true
defaults:
run:
shell: bash
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
AWS_ACCESS_KEY_ID: AKIAVBLKPL2ZW2T7TYFQ
AWS_SECRET_ACCESS_KEY: ${{ secrets.NODE_PRE_GYP_SECRETACCESSKEY }}
NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}}
jobs:
rstats-linux:
name: R Package Linux
runs-on: ubuntu-20.04
env:
LIBARROW_BINARY : 'false'
ARROW_RUNTIME_SIMD_LEVEL : 'AVX2'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- uses: r-lib/actions/setup-r@v1
with:
r-version: 'devel'
- name: Install
env:
GITHUB_PAT: ${{ github.token }}
run: |
sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build texlive-latex-base texlive-fonts-extra libcurl4-openssl-dev valgrind pandoc
mkdir -p $HOME/.R
R -f tools/rpkg/dependencies.R
- name: Prepare
run: |
cd tools/rpkg
./configure
R CMD build .
- name: Tests
run: |
cd tools/rpkg
R CMD INSTALL -d duckdb_*.tar.gz
(cd tests && R -f testthat.R)
- name: R CMD check
run: |
cd tools/rpkg
R CMD check --as-cran -o /tmp duckdb_*.tar.gz
if grep WARNING /tmp/duckdb.Rcheck/00check.log ; then exit 1; fi
- name: Valgrind
run: |
cd tools/rpkg
export NOT_CRAN='false'
R CMD check --use-valgrind -o /tmp duckdb_*.tar.gz
- name: Coverage
env:
DUCKDB_R_DEBUG: 1
run: |
pkgload::load_all("tools/rpkg")
cov <- covr::codecov("tools/rpkg", relative_path = ".")
shell: Rscript {0}
- name: Print R log on failure
if: ${{ failure() }}
run: |
ls -R /tmp/duckdb.Rcheck
cat /tmp/duckdb.Rcheck/00check.log
cat /tmp/duckdb.Rcheck/tests/testthat.Rout.fail
- name: Deploy
run: python scripts/asset-upload-gha.py duckdb_r_src.tar.gz=tools/rpkg/duckdb_*.tar.gz
rstats-windows:
name: R Package Windows
runs-on: windows-latest
needs: rstats-linux
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- uses: r-lib/actions/setup-r@v1
with:
r-version: 'devel'
- name: Install
run: |
R -f tools/rpkg/dependencies.R
- name: Build
run: |
cd tools/rpkg
./configure
R CMD build .
R CMD INSTALL duckdb_*.tar.gz
(cd tests && R -f testthat.R)
R CMD check --as-cran --no-manual -o /tmp duckdb_*.tar.gz
if grep WARNING /tmp/duckdb.Rcheck/00check.log ; then exit 1; fi
rubsan:
name: R UBSAN
runs-on: ubuntu-latest
needs: rstats-linux
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run
run: |
(cd tools/rpkg && ./configure && R CMD build .)
docker run -v `pwd`:/duckdb --cap-add SYS_PTRACE wch1/r-debug:latest bash -c "mkdir -p ~/.R && echo -e \"PKG_CFLAGS=-fno-sanitize-recover=all\\nPKG_CXXFLAGS=-fno-sanitize-recover=all\" > ~/.R/Makevars && export CMAKE_UNITY_BUILD=OFF ARROW_R_DEV=TRUE LIBARROW_BINARY=true && cd /duckdb/tools/rpkg/ && RDsan -f dependencies.R && RDsan CMD INSTALL duckdb_*.tar.gz && cd tests && UBSAN_OPTIONS=print_stacktrace=1 RDsan -f testthat.R"
- name: Print R log on failure
if: ${{ failure() }}
run: |
cat duckdb.Rcheck/00check.log
cat duckdb.Rcheck/tests/testthat.Rout.fail