benchpressjs/benchpressjs

View on GitHub
.github/workflows/test.yaml

Summary

Maintainability
Test Coverage
name: Lint and test

on: [push, pull_request]

defaults:
  run:
    shell: bash

jobs:
  test:
    name: Lint and test
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        node: [14, 16, 18]
        include:
          - os: ubuntu-latest
            node: '14'
            coverage: true
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Install Node
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node }}

      - name: Install stable rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          default: true
          profile: minimal

      - name: Install nightly rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          default: false
          components: rustfmt, clippy
          profile: minimal

      - name: Check clippy
        uses: actions-rs/clippy-check@v1
        with:
          toolchain: nightly
          token: ${{ secrets.GITHUB_TOKEN }}

      - name: Check rustfmt
        uses: actions-rs/cargo@v1
        with:
          toolchain: nightly
          command: fmt
          args: -- --check

      - name: Rust test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --lib

      - name: Install wasm-pack
        uses: jetli/wasm-pack-action@v0.3.0

      - name: NPM install
        run: npm install

      - name: Node tests
        run: npm test

      - name: Extract coverage info
        run: npm run coverage

      - name: Test coverage
        uses: coverallsapp/github-action@master
        if: matrix.coverage
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}