name: Checks

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  markdownlint:
    runs-on: ubuntu-latest
    steps:
    - name: check out code
      uses: actions/checkout@v2

    - name: install dependencies
      run: npm install

    - name: Check file and folder names
      run: make check-file-and-folder-names-in-docs

    - name: run markdownlint
      run: npx gulp lint-md

  yamllint:
    runs-on: ubuntu-latest
    steps:
    - name: check out code
      uses: actions/checkout@v2

    - uses: actions/setup-python@v2

    - name: install yamllint
      run: make install-yamllint

    - name: run yamllint
      run: yamllint . -f github

  markdown-link-check:
    runs-on: ubuntu-latest
    steps:
    - name: check out code
      uses: actions/checkout@v2

    - name: install dependencies
      run: npm install

    - name: run markdown-link-check
      run: make markdown-link-check

  markdown-toc-check:
    runs-on: ubuntu-latest
    steps:
    - name: check out code
      uses: actions/checkout@v2

    - name: install dependencies
      run: npm install

    - name: run markdown-toc
      run: make markdown-toc

    - name: validate markdown-toc
      run: git diff --exit-code ':*.md' || (echo 'Generated markdown Table of Contents is out of date, please run "make markdown-toc" and commit the changes in this PR.' && exit 1)

  misspell:
    runs-on: ubuntu-latest
    steps:
    - name: check out code
      uses: actions/checkout@v2

    - name: run misspell
      run: make misspell

  docfx:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 6.0.x

    - name: install docfx
      run: dotnet tool update -g docfx --version "3.0.0-*" --add-source https://docfx.pkgs.visualstudio.com/docfx/_packaging/docs-public-packages/nuget/v3/index.json

    - name: run docfx
      run: docfx build --dry-run

  semantic-conventions:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: verify semantic convention tables
      run: make table-check

  schemas-check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: verify schemas
      run: make schema-check
