aesy/Easy-Bits

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: Continous Integration

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    name: Build using Node ${{ matrix.node-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ 10, 12, 14 ]
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Set up environment
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - name: Install dependencies
      run: npm ci
    - name: Build with Node
      run: npm run build:prod
  test-node:
    name: Test using Node ${{ matrix.node-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ 10, 12, 14 ]
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Set up environment
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - name: Install dependencies
      run: npm ci
    - name: Lint with ESLint
      run: npm run lint
    - name: Test with Node
      run: npm run test:node
    - name: Check coverage
      run: npm run test:coverage:check
    - name: Upload coverage to Coveralls
      run: npm run test:coverage:report
      env:
        COVERALLS_REPO_TOKEN: "${{ secrets.COVERALLS_REPO_TOKEN }}"
        COVERALLS_GIT_BRANCH: "${{ github.ref }}"
  test-browser:
    name: Test in Chrome & Firefox using Karma
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Set up Node
      uses: actions/setup-node@v1
      with:
        node-version: 14
    - name: Set up Firefox
      uses: browser-actions/setup-firefox@latest
      with:
        firefox-version: latest
    - name: Set up Chrome
      uses: browser-actions/setup-chrome@latest
      with:
        chrome-version: stable
    - name: Install dependencies
      run: npm ci
    - name: Test with Karma
      run: npm run test:browser