devlato/async-wait-until

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI

on:
  push:
    branches-ignore:
      - master
      - gh-pages
    tags-ignore:
      - '*'
  pull_request: {}

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: '${{ github.event.pull_request.head.sha }}'
          set-safe-directory: 'true'
      - name: Install dependencies
        run: npm ci --ignore-scripts
      - name: Lint the codebase
        run: npm run lint:ci
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: '${{ github.event.pull_request.head.sha }}'
          set-safe-directory: 'true'
      - name: Install dependencies
        run: npm ci --ignore-scripts
      - name: Run tests
        run: npm run test:ci
      - name: Upload coverage
        uses: actions/upload-artifact@v4
        with:
          name: test_coverage
          path: coverage
  build_code:
    name: Build code
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: '${{ github.event.pull_request.head.sha }}'
          set-safe-directory: 'true'
      - name: Install dependencies
        run: npm ci --ignore-scripts
      - name: Build code
        run: npm run build:ci
      - name: Upload the dist folder
        uses: actions/upload-artifact@v4
        with:
          name: dist
          path: dist
  integration_tests:
    name: Run integration tests
    runs-on: ubuntu-latest
    needs: build_code
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: '${{ github.event.pull_request.head.sha }}'
          set-safe-directory: 'true'
      - name: Install dependencies
        run: npm ci --ignore-scripts
      - name: Download dist/ folder
        uses: actions/download-artifact@v4
        with:
          name: dist
          path: dist
      - name: Run integration tests
        run: npm run test:integration:ci
  build_storybook:
    name: Build docs
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: '${{ github.event.pull_request.head.sha }}'
          set-safe-directory: 'true'
      - name: Install dependencies
        run: npm ci --ignore-scripts
      - name: Build docs
        run: npm run docs:ci
      - name: Upload the storybook
        uses: actions/upload-artifact@v4
        with:
          name: docs
          path: docs