diff --git a/.github/workflows/test_api_server.yml b/.github/workflows/test_api_server.yml index f3ba768..7c6f261 100644 --- a/.github/workflows/test_api_server.yml +++ b/.github/workflows/test_api_server.yml @@ -31,7 +31,7 @@ on: - 'tests/*.hurl' jobs: - test-api-server: + test-api-server-ubuntu: runs-on: ubuntu-latest strategy: matrix: @@ -91,6 +91,78 @@ jobs: run: | hurl --test --jobs 1 ./tests/sd_1.4.hurl + - name: Stop llama-api-server + run: | + pkill -f wasmedge + + + test-api-server-mac: + runs-on: macos-14 + strategy: + matrix: + wasmedge_version: [0.14.1-rc.4] + steps: + - name: Clone project + id: checkout + uses: actions/checkout@v3 + + - name: Install Rust-nightly + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + target: wasm32-wasip1 + components: rustfmt, clippy + + - name: Install Rust-stable + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + target: wasm32-wasip1 + + - name: Install WasmEdge + run: | + curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s -- -v ${{ matrix.wasmedge_version }} + ls -al $HOME/.wasmedge/plugin + + - name: Deploy wasmedge_stablediffusion plugin + run: | + curl -LO https://github.com/WasmEdge/WasmEdge/releases/download/0.14.1-rc.4/WasmEdge-plugin-wasmedge_stablediffusion-0.14.1-rc.4-darwin_arm64.tar.gz + tar -xzf WasmEdge-plugin-wasmedge_stablediffusion-0.14.1-rc.4-darwin_arm64.tar.gz -C $HOME/.wasmedge/plugin + rm $HOME/.wasmedge/plugin/libwasmedgePluginWasiNN.dylib + ls -al $HOME/.wasmedge/plugin + + - name: Download wasi-sdk for arm64-macos + run: | + curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-24/wasi-sdk-24.0-arm64-macos.tar.gz + tar -xzvf wasi-sdk-24.0-arm64-macos.tar.gz + mv wasi-sdk-24.0-arm64-macos wasi-sdk-24.0 + + - name: Install Hurl + run: | + brew install hurl + + - name: Build sd-api-server on macos-14 + env: + WASI_SDK_PATH: /Users/runner/work/LlamaEdge/LlamaEdge/wasi-sdk-24.0 + CC: "/Users/runner/work/LlamaEdge/LlamaEdge/wasi-sdk-24.0/bin/clang --sysroot=/Users/runner/work/LlamaEdge/LlamaEdge/wasi-sdk-24.0/share/wasi-sysroot" + RUSTFLAGS: "--cfg wasmedge --cfg tokio_unstable" + run: | + cargo build --release + cp target/wasm32-wasip1/release/sd-api-server.wasm ./sd-api-server.wasm + + - name: Download model + run: | + curl -LO https://huggingface.co/second-state/stable-diffusion-v-1-4-GGUF/resolve/main/stable-diffusion-v1-4-Q8_0.gguf + + - name: Start sd-api-server + run: | + nohup $HOME/.wasmedge/bin/wasmedge --dir .:. sd-api-server.wasm --model-name sd-v1.4 --model stable-diffusion-v1-4-Q8_0.gguf --socket-addr 0.0.0.0:8080 > ./start-llamaedge.log 2>&1 & + sleep 5 + cat start-llamaedge.log + + - name: Run test + run: | + hurl --test --jobs 1 ./tests/sd_1.4.hurl + - name: Stop llama-api-server run: | pkill -f wasmedge \ No newline at end of file