-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (107 loc) · 3.14 KB
/
Copy pathci.yml
File metadata and controls
130 lines (107 loc) · 3.14 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
name: CI
on:
pull_request:
push:
branches:
- main
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Lint
run: pnpm run lint
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Test
run: pnpm run test
build-native:
env:
RUSTC_WRAPPER: sccache
SCCACHE_GHA_ENABLED: "true"
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
target: x86_64-apple-darwin
cross_compile: false
- os: macos-latest
target: aarch64-apple-darwin
cross_compile: false
- os: windows-latest
target: x86_64-pc-windows-msvc
cross_compile: false
- os: windows-latest
target: aarch64-pc-windows-msvc
cross_compile: false
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
cross_compile: false
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
cross_compile: true
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
cross_compile: false
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
cross_compile: true
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install sccache
uses: mozilla-actions/sccache-action@v0.0.9
- name: Cache Rust build
uses: Swatinem/rust-cache@v2
with:
shared-key: native-${{ matrix.target }}
- name: Install dependencies
run: pnpm install
- name: Install Zig
if: matrix.cross_compile
uses: goto-bus-stop/setup-zig@v2
- name: Build native target
if: ${{ !matrix.cross_compile }}
run: pnpm exec napi build --platform --release --target ${{ matrix.target }}
- name: Build native target (cross)
if: matrix.cross_compile
run: pnpm exec napi build --platform --release --cross-compile --target ${{ matrix.target }}
- name: Upload native artifact
uses: actions/upload-artifact@v4
with:
name: native-${{ matrix.target }}
path: slatedb-node.*.node
if-no-files-found: error
- name: Show sccache stats
if: always()
run: sccache --show-stats