inversify/InversifyJS

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: Continuous Integration

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  Testing:
    name: Unit Tests
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x]
        ts-project: [src/tsconfig.json, src/tsconfig-es6.json]
    env:
      TS_NODE_PROJECT: ${{ matrix.ts-project }}

    steps:
      - name: Checkout Project
        uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
          cache: npm
          registry-url: https://registry.npmjs.org/
      - name: Install Dependencies
        run: npm ci
      - name: Run tests
        run: npm test --coverage
      - name: Store code coverage report
        uses: actions/upload-artifact@v3
        with:
          name: coverage
          path: coverage/

  Build:
    name: Compile source code
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x]
        ts-project: [src/tsconfig.json, src/tsconfig-es6.json]
    env:
      TS_NODE_PROJECT: ${{ matrix.ts-project }}

    steps:
    - name: Checkout Project
      uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: npm
        registry-url: https://registry.npmjs.org/
    - run: npm cache clean --force
    - run: npm ci
    - run: npm run build --if-present

  Upload_Coverage_Report:
    name: Upload coverage report to codecov
    needs: [Testing]
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Project
        uses: actions/checkout@v3
        with:
          fetch-depth: 2
      - name: Download Coverage report
        uses: actions/download-artifact@v3
        with:
          name: coverage
          path: coverage/
      - name: Codecov Upload
        uses: codecov/codecov-action@v3
        with:
          directory: coverage/
          fail_ci_if_error: true