name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
jobs:
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: clippy
target: wasm32-unknown-unknown
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cargo-${{ runner.os }}-fmt-${{ hashFiles('**/Cargo.toml') }}
restore-keys: |
cargo-${{ runner.os }}-fmt-
cargo-${{ runner.os }}-
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: clippy
target: wasm32-unknown-unknown
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cargo-${{ runner.os }}-clippy-${{ hashFiles('**/Cargo.toml') }}
restore-keys: |
cargo-${{ runner.os }}-clippy-
cargo-${{ runner.os }}-
- name: Run clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --target wasm32-unknown-unknown -- -D warnings
- name: Run clippy (no default features)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --no-default-features --target wasm32-unknown-unknown -- -D warnings
- name: Run clippy (with json feature)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --no-default-features --features json --target wasm32-unknown-unknown -- -D warnings
- name: Run clippy (with websocket feature)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --no-default-features --features websocket --target wasm32-unknown-unknown -- -D warnings
- name: Run clippy (with http feature)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --no-default-features --features http --target wasm32-unknown-unknown -- -D warnings
test:
name: Test
runs-on: ubuntu-latest
services:
httpbin:
image: kennethreitz/httpbin@sha256:599fe5e5073102dbb0ee3dbb65f049dab44fa9fc251f6835c9990f8fb196a72b
ports:
- 8080:80
echo_server:
image: jmalloc/echo-server@sha256:c461e7e54d947a8777413aaf9c624b4ad1f1bac5d8272475da859ae82c1abd7d
ports:
- 8081:8080
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: clippy
target: wasm32-unknown-unknown
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cargo-${{ runner.os }}-test-${{ hashFiles('**/Cargo.toml') }}
restore-keys: |
cargo-${{ runner.os }}-test-
cargo-${{ runner.os }}-
- name: Run browser tests
env:
HTTPBIN_URL: "http://localhost:8080"
ECHO_SERVER_URL: "ws://localhost:8081"
run: wasm-pack test --chrome --firefox --headless
- name: Run browser tests
env:
HTTPBIN_URL: "http://localhost:8080"
ECHO_SERVER_URL: "ws://localhost:8081"
uses: actions-rs/cargo@v1
with:
command: test