-
Notifications
You must be signed in to change notification settings - Fork 1
130 lines (114 loc) · 3.2 KB
/
test.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
name: Tests
on:
workflow_dispatch:
workflow_call:
push:
branches: [ main ]
pull_request:
jobs:
clippy:
name: 📎 fmt and clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup update && cargo install cargo-deny
- run: cargo fmt -- --check
- run: cargo clippy --all --all-targets --all-features
- run: cargo deny check
test-rust:
name: 🧪 Test Rust
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v4
- run: cargo build --all-features
- run: cargo test
env:
RUST_BACKTRACE: 1
cov-rust:
name: ☂️ Coverage Rust
runs-on: ubuntu-latest
container:
image: xd009642/tarpaulin:develop-nightly
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v4
- name: Generate code coverage
run: bash ./scripts/cov.sh
- name: Upload to codecov.io
uses: codecov/codecov-action@v3
with:
fail_ci_if_error: false
# token: ${{secrets.CODECOV_TOKEN}}
test-js:
name: 🟨 Test JavaScript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
cache: npm
cache-dependency-path: "./js/package.json"
- run: rustup update && cargo install wasm-pack
- name: Run tests
run: ./scripts/test-js.sh
test-python:
name: 🐍 Test Python
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12
- run: rustup update
- name: Run tests
run: ./scripts/test-python.sh
# TODO: Error in loadNamespace(x) : there is no package called ‘devtools’
# test-r:
# name: 📈 Test R
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: r-lib/actions/setup-r@v2
# - run: rustup update
# - name: Run tests
# run: ./scripts/test-r.sh --install
docs:
name: 📚 Update docs website
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
run: pip install -r lib/docs/requirements.txt
- name: Deploy mkdocs on GitHub Pages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mkdocs build -f lib/docs/mkdocs.yml -d dist
# mkdocs gh-deploy dont support new pages
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './lib/docs/dist'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4