reqwasm 0.5.0

HTTP requests library for WASM Apps
Documentation
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