mirror of
https://github.com/cloudflare/workers-rs.git
synced 2025-12-08 18:01:59 +00:00
108 lines
2.7 KiB
YAML
108 lines
2.7 KiB
YAML
name: Pull Request
|
|
|
|
on: pull_request
|
|
|
|
jobs:
|
|
rustfmt:
|
|
name: Formatter
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
target: wasm32-unknown-unknown
|
|
override: true
|
|
|
|
- name: Check Formatting
|
|
run: cargo fmt --all -- --check
|
|
|
|
- name: Check for idiomatic code
|
|
run: cargo clippy --all-features --all-targets --all -- -D warnings
|
|
test:
|
|
name: Test
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
target: wasm32-unknown-unknown
|
|
override: true
|
|
|
|
- name: Check for errors
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
|
|
- name: Run builder tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --manifest-path worker-build/Cargo.toml
|
|
|
|
- name: Setup node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: v18.12.1
|
|
|
|
- name: Install packages
|
|
run: |
|
|
sudo apt update
|
|
sudo apt clean
|
|
sudo apt install -y build-essential libssl-dev netcat
|
|
|
|
- name: Install miniflare
|
|
shell: bash
|
|
run: |
|
|
git clone https://github.com/cloudflare/miniflare.git
|
|
cd miniflare
|
|
git checkout 9d96aaa66aa48eb1107c86fe24cbfd444249533c
|
|
cd packages/miniflare
|
|
npm i
|
|
npm link
|
|
cd ../..
|
|
npm i
|
|
npm run build
|
|
|
|
- name: Install wasmpack
|
|
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
|
|
|
- name: Build local worker-build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: install
|
|
args: --path ./worker-build --force --debug
|
|
|
|
- name: Run tests
|
|
shell: bash
|
|
working-directory: ./worker-sandbox
|
|
run: |
|
|
set -e
|
|
|
|
echo "
|
|
EXAMPLE_SECRET=\"example\"
|
|
SOME_SECRET=\"secret!\"
|
|
SOME_VARIABLE=\"some value\"
|
|
" > .env
|
|
|
|
# Start miniflare and register a trap to kill it once we're done
|
|
miniflare --no-cf-fetch --no-update-check -c ./wrangler.toml -B "worker-build --release" &
|
|
MINIFLARE_PID=$!
|
|
trap "kill $MINIFLARE_PID" EXIT
|
|
|
|
|
|
# Wait for port 8787 to open on miniflare by looping with netcat.
|
|
echo "Waiting miniflare to launch on 8787..."
|
|
while ! nc -z 127.0.0.1 8787; do
|
|
sleep 0.1
|
|
done
|
|
|
|
cargo test
|