Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 62 additions & 2 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ jobs:
sed -i '/"examples\/axum",/d' Cargo.toml
for example in examples/*/; do
example_name=$(basename "$example")
if [ "$example_name" = "coredump" ]; then
echo "Skipping coredump example"
if [ "$example_name" = "coredump" ] || [ "$example_name" = "emscripten-tcp" ]; then
echo "Skipping $example_name example"
continue
fi
echo "Building $example_name"
Expand All @@ -126,6 +126,66 @@ jobs:
cd ../..
done

build-emscripten:
name: Emscripten example
needs: worker-build
runs-on: ubuntu-latest
steps:
- uses: dtolnay/rust-toolchain@1.87.0
- uses: actions/checkout@v4
with:
submodules: true

- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: ~/.cargo/registry ~/.cargo/git target examples/emscripten-tcp/target
key: ${{ runner.os }}-cargo-emscripten-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-emscripten-

- name: Cache Emscripten SDK
uses: actions/cache@v4
with:
path: |
~/.cache/worker-build/emsdk-*
~/.cache/worker-build/binaryen-*
key: ${{ runner.os }}-emsdk-${{ hashFiles('worker-build/src/versions.rs', 'worker-build/patches/emscripten/*') }}

- uses: actions/download-artifact@v4
with:
name: worker-build
path: ./target/debug

- name: Make worker-build executable
run: chmod +x ./target/debug/worker-build

- name: Build wasm-bindgen
run: cd wasm-bindgen && cargo build -p wasm-bindgen-cli --bin wasm-bindgen

- name: Install emscripten target toolchain
run: rustup toolchain install beta --profile minimal --target wasm32-unknown-emscripten

- name: Build example (dev)
working-directory: examples/emscripten-tcp
run: WASM_BINDGEN_BIN=../../wasm-bindgen/target/debug/wasm-bindgen ../../target/debug/worker-build --emscripten --dev

- name: Build example (release)
working-directory: examples/emscripten-tcp
run: WASM_BINDGEN_BIN=../../wasm-bindgen/target/debug/wasm-bindgen ../../target/debug/worker-build --emscripten --release

- name: Smoke test under wrangler
working-directory: examples/emscripten-tcp
run: |
sed '/^\[build\]/,$d' wrangler.toml > wrangler.ci.toml
npx -y wrangler@4 dev -c wrangler.ci.toml --port 8787 > wrangler.log 2>&1 &
for i in $(seq 1 30); do
curl -sf http://localhost:8787/ > /dev/null && break
sleep 1
done
curl -sf 'http://localhost:8787/?host=example.com' | tee response.txt
grep -q '^HTTP/1\.' response.txt
cat wrangler.log

rustfmt:
name: Formatter
runs-on: ubuntu-latest
Expand Down
14 changes: 12 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ members = [
exclude = [
"examples/coredump",
"examples/axum",
"examples/emscripten-tcp",
"templates/*",
"wasm-bindgen",
"wasm-streams",
Expand Down
4 changes: 4 additions & 0 deletions examples/emscripten-tcp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
build
target
node_modules
.wrangler
Loading
Loading