This repository was archived by the owner on Jul 12, 2026. It is now read-only.
Repository navigation
140 lines (137 loc) · 4.56 KB
/
Copy pathmain.yml
File metadata and controls
140 lines (137 loc) · 4.56 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
131
132
133
134
135
136
137
138
139
140
name: main
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
check-fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22.x"
- run: npm ci
- name: Check formatting
run: npm run fmt -- --check
- name: Check Rust formatting
run: cargo fmt -- --check
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- run: npm ci;
- name: Prepare no-compat builds
run: |
./builds/prepare_builds/prepare_all_projects.sh
- name: Build all no-compat projects
run: |
./builds/prepare_builds/build_all_projects.sh
# Install dependencies to check simd for builds
- name: Install wabt
run: |
sudo apt install wabt;
if: matrix.os == 'ubuntu-latest'
- name: Install wabt
run: |
brew install wabt;
if: matrix.os == 'macos-latest'
- name: Check simd rust build
run: |
./scripts/verify_simd_rust.sh
- uses: actions/upload-artifact@v4
with:
name: pkg no-compat ${{ matrix.os }}
path: |
builds/*/pkg
overwrite: true
build-compat:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Prepare compat builds
run: |
./builds/prepare_builds/prepare_all_projects.sh
- run: npm ci;
- name: Build rapier-compat
run: |
cd rapier-compat;
npm ci;
npm run build;
npm run test;
cd -;
# Install dependencies to check simd for builds
- name: Install wabt
run: |
sudo apt install wabt;
if: matrix.os == 'ubuntu-latest'
- name: Install wabt
run: |
brew install wabt;
if: matrix.os == 'macos-latest'
# Check simd for compat builds
- name: Check simd compat build
run: |
./scripts/verify_simd_compat.sh
# Upload
- uses: actions/upload-artifact@v4
with:
name: pkg compat ${{ matrix.os }}
path: |
rapier-compat/builds/*/pkg
overwrite: true
publish:
runs-on: ubuntu-latest
needs: [build, build-compat]
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: pkg no-compat ubuntu-latest
path: builds
- uses: actions/download-artifact@v4
with:
name: pkg compat ubuntu-latest
path: rapier-compat/builds
- uses: actions/setup-node@v4
with:
node-version: "22.x"
registry-url: "https://registry.npmjs.org"
- name: Publish projects
run: |
./publish_all_canary.sh
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}