name: Build & Test WASM on: push: branches: [main] pull_request: branches: [main] jobs: build-and-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.23' - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Clone kobopatch source run: | cd kobopatch-wasm ./setup.sh - name: Run native tests run: | cd kobopatch-wasm/kobopatch-src go test ./... - name: Run WASM tests run: | cd kobopatch-wasm/kobopatch-src GOROOT="$(go env GOROOT)" if [ -f "$GOROOT/lib/wasm/go_js_wasm_exec" ]; then EXEC="$GOROOT/lib/wasm/go_js_wasm_exec" else EXEC="$GOROOT/misc/wasm/go_js_wasm_exec" fi GOOS=js GOARCH=wasm go test -exec="$EXEC" ./... - name: Build WASM binary run: | cd kobopatch-wasm ./build.sh - name: Upload WASM artifact if: false uses: actions/upload-artifact@v4 with: name: kobopatch-wasm path: | kobopatch-wasm/kobopatch.wasm kobopatch-wasm/wasm_exec.js