exoRift/mass-require

View on GitHub
.github/workflows/quality_assurance.yml

Summary

Maintainability
Test Coverage
name: Quality Assurance

on: 
  push:
    branches:
      - master
      - dev
  pull_request:
    branches:
      - '*'
      - '!gh-pages'

jobs:
  test:
    name: Unit Testing (Ava)

    strategy:
      matrix:
        os: [ubuntu-latest]
        node: [12, 14, 16]

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v3
      - name: Set up Node
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}
      - name: Cache Dependencies
        id: dep-cache
        uses: actions/cache@v3
        env:
          cache-name: dep-cache
        with:
          path: |
            **/node_modules/
            ~/.npm/
          key: ${{ matrix.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-build-${{ env.cache-name }}-
            ${{ runner.os }}-build-
            ${{ runner.os }}-
      - name: Install Dependencies
        run: npm ci
        if: steps.dep-cache.outputs.cache-hit != 'true'
      - name: Run Tests
        run: npm test
      - name: Upload Coverage
        if: success()
        uses: paambaati/codeclimate-action@v3.0.0
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_TOKEN }}
        with:
          coverageLocations: ${{ github.workspace }}/coverage/lcov.info:lcov
  lint:
    name: Linting

    strategy:
      matrix:
        os: [ubuntu-latest]
        node: [16]

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v3
      - name: Set up Node
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}
      - name: Cache Dependencies
        id: dep-cache
        uses: actions/cache@v3
        env:
          cache-name: dep-cache
        with:
          path: |
            **/node_modules/
            ~/.npm/
          key: ${{ matrix.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-build-${{ env.cache-name }}-
            ${{ runner.os }}-build-
            ${{ runner.os }}-
      - name: Install Dependencies
        run: npm ci
        if: steps.dep-cache.outputs.cache-hit != 'true'
      - name: Lint Code
        run: npm run lint