1313 branches : [ main ]
1414
1515jobs :
16- build :
16+ linux :
1717
1818 runs-on : ubuntu-22.04
1919
2020 steps :
21- - uses : actions/checkout@v2
21+ - uses : actions/checkout@v4
2222
2323 - name : Install apt-get packages
2424 run : |
6060
6161 - name : Install and run GreptimeDB
6262 run : |
63- curl -L https://github.com/GreptimeTeam/greptimedb/raw/develop/scripts/install.sh | sh
63+ GREPTIMEDB_VERSION=$(curl -sL "https://api.github.com/repos/GreptimeTeam/greptimedb/releases" | grep -oE '"tag_name": "v[^"]*"' | grep -v nightly | head -1 | grep -oE 'v[^"]*')
64+ curl -sL "https://github.com/GreptimeTeam/greptimedb/releases/download/${GREPTIMEDB_VERSION}/greptime-linux-amd64-${GREPTIMEDB_VERSION}.tar.gz" | tar xz --strip-components=1
6465 ./greptime standalone start &
66+ sleep 3
6567
6668 - name : Install and run Qdrant in Docker
6769 run : |
@@ -82,18 +84,26 @@ jobs:
8284
8385 - name : Install Rust target for wasm
8486 run : |
85- rustup target add wasm32-wasi
87+ rustup target add wasm32-wasip1
88+
89+ - name : Install WASI SDK
90+ run : |
91+ WASI_SDK_VERSION=25
92+ curl -L "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-x86_64-linux.tar.gz" -o /tmp/wasi-sdk.tar.gz
93+ sudo tar xzf /tmp/wasi-sdk.tar.gz -C /opt/
94+ echo "WASI_SDK_PATH=/opt/wasi-sdk-${WASI_SDK_VERSION}.0-x86_64-linux" >> $GITHUB_ENV
95+ echo "CC_wasm32_wasip1=/opt/wasi-sdk-${WASI_SDK_VERSION}.0-x86_64-linux/bin/clang" >> $GITHUB_ENV
96+ echo "AR_wasm32_wasip1=/opt/wasi-sdk-${WASI_SDK_VERSION}.0-x86_64-linux/bin/ar" >> $GITHUB_ENV
8697
8798 - name : Install WasmEdge
8899 run : |
89- VERSION=0.14.0
90- curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | sudo bash -s -- --version=$VERSION -p /usr/local
100+ curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | sudo bash -s -- -p /usr/local
91101
92102 - name : MySQL async examples
93103 run : |
94104 cd mysql_async
95- cargo build --target wasm32-wasi --release
96- wasmedge compile target/wasm32-wasi /release/crud.wasm crud.wasm
105+ cargo build --target wasm32-wasip1 --release
106+ wasmedge compile target/wasm32-wasip1 /release/crud.wasm crud.wasm
97107 resp=$(wasmedge --env "DATABASE_URL=mysql://root:root@localhost:3306/mysql" crud.wasm 2>&1)
98108 echo "$resp"
99109 if [[ $resp == *"Bobcat"* ]]; then
@@ -106,17 +116,17 @@ jobs:
106116 - name : GreptimeDB examples
107117 run : |
108118 cd greptimedb
109- cargo build --target wasm32-wasi --release
110- wasmedge compile target/wasm32-wasi /release/greptimedb.wasm greptimedb.wasm
119+ cargo build --target wasm32-wasip1 --release
120+ wasmedge compile target/wasm32-wasip1 /release/greptimedb.wasm greptimedb.wasm
111121 resp=$(wasmedge --env "DATABASE_URL=mysql://localhost:4002/public" greptimedb.wasm 2>&1)
112122 echo "$resp"
113123
114124 - name : MySQL simple examples
115125 run : |
116126 cd mysql
117- cargo build --target wasm32-wasi --release
118- wasmedge compile target/wasm32-wasi /release/query.wasm query.wasm
119- wasmedge compile target/wasm32-wasi /release/insert.wasm insert.wasm
127+ cargo build --target wasm32-wasip1 --release
128+ wasmedge compile target/wasm32-wasip1 /release/query.wasm query.wasm
129+ wasmedge compile target/wasm32-wasip1 /release/insert.wasm insert.wasm
120130 resp=$(wasmedge --env "DATABASE_URL=mysql://root:root@127.0.0.1:3306/mysql" query.wasm 2>&1)
121131 echo "$resp"
122132 if [[ $resp == *"localhost"* ]]; then
@@ -137,8 +147,8 @@ jobs:
137147 - name : Redis examples
138148 run : |
139149 cd redis
140- cargo build --target wasm32-wasi --release
141- wasmedge compile target/wasm32-wasi /release/wasmedge-redis-client-examples.wasm wasmedge-redis-client-examples.wasm
150+ cargo build --target wasm32-wasip1 --release
151+ wasmedge compile target/wasm32-wasip1 /release/wasmedge-redis-client-examples.wasm wasmedge-redis-client-examples.wasm
142152 resp=$(wasmedge --env "REDIS_URL=redis://localhost/" wasmedge-redis-client-examples.wasm 2>&1)
143153 echo "$resp"
144154 if [[ $resp == *"UTC"* ]]; then
@@ -151,24 +161,24 @@ jobs:
151161 - name : PostgresSQL examples
152162 run : |
153163 cd postgres
154- cargo build --target wasm32-wasi --release
155- wasmedge compile target/wasm32-wasi /release/crud.wasm crud.wasm
164+ cargo build --target wasm32-wasip1 --release
165+ wasmedge compile target/wasm32-wasip1 /release/crud.wasm crud.wasm
156166 resp=$(wasmedge --env "DATABASE_URL=postgres://wasmedge:mysecret@localhost/testdb" crud.wasm 2>&1)
157167 echo "$resp"
158168
159169 - name : Qdrant examples
160170 run : |
161171 cd qdrant
162- cargo build --target wasm32-wasi --release
163- wasmedge compile target/wasm32-wasi /release/qdrant_examples.wasm qdrant_examples.wasm
172+ cargo build --target wasm32-wasip1 --release
173+ wasmedge compile target/wasm32-wasip1 /release/qdrant_examples.wasm qdrant_examples.wasm
164174 resp=$(wasmedge qdrant_examples.wasm 2>&1)
165175 echo "$resp"
166176
167177# - name: Anna KVS examples
168178# run: |
169179# cd anna
170- # cargo build --target wasm32-wasi --release
171- # wasmedgec target/wasm32-wasi /release/putget.wasm putget.wasm
180+ # cargo build --target wasm32-wasip1 --release
181+ # wasmedge compile target/wasm32-wasip1 /release/putget.wasm putget.wasm
172182# resp=$(wasmedge putget.wasm 2>&1)
173183# echo "$resp"
174184# if [[ $resp == *"UTC"* ]]; then
@@ -191,3 +201,134 @@ jobs:
191201 echo -e "Execution Fail!"
192202 exit 1
193203 fi
204+
205+ macos :
206+
207+ runs-on : macos-14
208+
209+ steps :
210+ - uses : actions/checkout@v4
211+
212+ - name : Install Rust target for wasm
213+ run : |
214+ rustup update stable
215+ rustup target add wasm32-wasip1
216+
217+ - name : Install wasi-sdk
218+ run : |
219+ WASI_SDK_VERSION=25
220+ curl -sL "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-arm64-macos.tar.gz" | tar xz
221+ echo "WASI_SDK_PATH=$(pwd)/wasi-sdk-${WASI_SDK_VERSION}.0-arm64-macos" >> $GITHUB_ENV
222+ echo "CC_wasm32_wasip1=$(pwd)/wasi-sdk-${WASI_SDK_VERSION}.0-arm64-macos/bin/clang" >> $GITHUB_ENV
223+ echo "AR_wasm32_wasip1=$(pwd)/wasi-sdk-${WASI_SDK_VERSION}.0-arm64-macos/bin/ar" >> $GITHUB_ENV
224+
225+ - name : Install latest WasmEdge
226+ run : |
227+ curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash
228+ echo "$HOME/.wasmedge/bin" >> $GITHUB_PATH
229+
230+ - name : Install and run MySQL
231+ run : |
232+ brew install mysql
233+ brew services start mysql
234+ sleep 5
235+ mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';"
236+ mysql -e "SET GLOBAL max_allowed_packet = 36700160;" -uroot -proot
237+
238+ - name : Install and run Redis
239+ run : |
240+ brew install redis
241+ brew services start redis
242+ sleep 2
243+
244+ - name : Install and run PostgreSQL
245+ run : |
246+ brew install postgresql@14
247+ brew services start postgresql@14
248+ sleep 5
249+ createuser -w wasmedge
250+ createdb -O wasmedge testdb
251+ psql -d testdb -c "ALTER USER wasmedge PASSWORD 'mysecret';"
252+ psql -d testdb -c 'SELECT datname FROM pg_catalog.pg_database'
253+
254+ - name : Install and run GreptimeDB
255+ run : |
256+ GREPTIMEDB_VERSION=$(curl -sL "https://api.github.com/repos/GreptimeTeam/greptimedb/releases" | grep -oE '"tag_name": "v[^"]*"' | grep -v nightly | head -1 | grep -oE 'v[^"]*')
257+ curl -sL "https://github.com/GreptimeTeam/greptimedb/releases/download/${GREPTIMEDB_VERSION}/greptime-darwin-arm64-${GREPTIMEDB_VERSION}.tar.gz" | tar xz --strip-components=1
258+ ./greptime standalone start &
259+ sleep 3
260+
261+ - name : Install and run Qdrant
262+ run : |
263+ curl -sL "https://github.com/qdrant/qdrant/releases/latest/download/qdrant-aarch64-apple-darwin.tar.gz" | tar xz -C /tmp/
264+ nohup /tmp/qdrant &
265+ sleep 3
266+ curl -s http://localhost:6333/healthz || echo "Qdrant health check"
267+
268+ - name : MySQL async examples
269+ run : |
270+ cd mysql_async
271+ cargo build --target wasm32-wasip1 --release
272+ resp=$(wasmedge --env "DATABASE_URL=mysql://root:root@localhost:3306/mysql" target/wasm32-wasip1/release/crud.wasm 2>&1)
273+ echo "$resp"
274+ if [[ $resp == *"Bobcat"* ]]; then
275+ echo -e "Execution Success!"
276+ else
277+ echo -e "Execution Fail!"
278+ exit 1
279+ fi
280+
281+ - name : GreptimeDB examples
282+ run : |
283+ cd greptimedb
284+ cargo build --target wasm32-wasip1 --release
285+ resp=$(wasmedge --env "DATABASE_URL=mysql://localhost:4002/public" target/wasm32-wasip1/release/greptimedb.wasm 2>&1)
286+ echo "$resp"
287+
288+ - name : MySQL simple examples
289+ run : |
290+ cd mysql
291+ cargo build --target wasm32-wasip1 --release
292+ resp=$(wasmedge --env "DATABASE_URL=mysql://root:root@127.0.0.1:3306/mysql" target/wasm32-wasip1/release/query.wasm 2>&1)
293+ echo "$resp"
294+ if [[ $resp == *"localhost"* ]]; then
295+ echo -e "Execution Success!"
296+ else
297+ echo -e "Execution Fail!"
298+ exit 1
299+ fi
300+ resp=$(wasmedge --env "DATABASE_URL=mysql://root:root@localhost:3306/mysql" target/wasm32-wasip1/release/insert.wasm 2>&1)
301+ echo "$resp"
302+ if [[ $resp == *"foo"* ]]; then
303+ echo -e "Execution Success!"
304+ else
305+ echo -e "Execution Fail!"
306+ exit 1
307+ fi
308+
309+ - name : Redis examples
310+ run : |
311+ cd redis
312+ cargo build --target wasm32-wasip1 --release
313+ resp=$(wasmedge --env "REDIS_URL=redis://localhost/" target/wasm32-wasip1/release/wasmedge-redis-client-examples.wasm 2>&1)
314+ echo "$resp"
315+ if [[ $resp == *"UTC"* ]]; then
316+ echo -e "Execution Success!"
317+ else
318+ echo -e "Execution Fail!"
319+ exit 1
320+ fi
321+
322+ - name : PostgresSQL examples
323+ run : |
324+ cd postgres
325+ cargo build --target wasm32-wasip1 --release
326+ resp=$(wasmedge --env "DATABASE_URL=postgres://wasmedge:mysecret@localhost/testdb" target/wasm32-wasip1/release/crud.wasm 2>&1)
327+ echo "$resp"
328+
329+ - name : Qdrant examples
330+ run : |
331+ cd qdrant
332+ cargo build --target wasm32-wasip1 --release
333+ resp=$(wasmedge target/wasm32-wasip1/release/qdrant_examples.wasm 2>&1)
334+ echo "$resp"
0 commit comments