undergroundwires/privacy.sexy

View on GitHub
.github/workflows/checks.quality.yaml

Summary

Maintainability
Test Coverage
name: checks.quality

on: [ push, pull_request ]

jobs:
  lint:
    runs-on: ${{ matrix.os }}-latest
    strategy:
      matrix:
        lint-command:
          - npm run lint:eslint
          - npm run lint:yaml
          - npm run lint:md
          - npm run lint:md:consistency
          - npm run lint:md:relative-urls
          - npm run lint:md:external-urls
        os: [ macos, ubuntu, windows ]
      fail-fast: false # Still interested to see results from other combinations
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Setup node
        uses: ./.github/actions/setup-node
      -
        name: Install dependencies
        uses: ./.github/actions/npm-install-dependencies
      -
        name: Lint
        run: ${{ matrix.lint-command }}

  todo-check:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Scan latest commit for TODO comments
        shell: bash
        run: |-
          readonly todo_comment_search_pattern='TODO'':' # Define search pattern in parts to prevent IDE from flagging this script line as a TODO item
          if git grep "$todo_comment_search_pattern" HEAD; then
            echo 'TODO comments found in the latest commit.'
            exit 1
          else
            echo 'No TODO comments found in the latest commit.'
            exit 0
          fi

  pylint:
    runs-on: ${{ matrix.os }}-latest
    strategy:
      matrix:
        os: [ macos, ubuntu, windows ]
      fail-fast: false # Still interested to see results from other combinations
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Setup node
        uses: ./.github/actions/setup-node
      -
        name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.x'
      -
        name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install pylint
      -
        name: Analyzing the code with pylint
        run: npm run lint:pylint

  validate-collection-files:
    runs-on: ${{ matrix.os }}-latest
    strategy:
      matrix:
        os: [ macos, ubuntu, windows ]
      fail-fast: false # Still interested to see results from other combinations
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Setup node
        uses: ./.github/actions/setup-node
      -
        name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.x'
      -
        name: Install dependencies
        run: python3 -m pip install -r ./scripts/validate-collections-yaml/requirements.txt
      -
        name: Validate
        run: python3 ./scripts/validate-collections-yaml