---
name: Lint / Syntax checks

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

jobs:
  hadolint:
    runs-on: ubuntu-latest
    container: ghcr.io/hadolint/hadolint:latest-alpine
    steps:
      - name: ↩️ Checkout
        uses: actions/checkout@v4

      - name: Get changed files
        id: changed_files
        uses: jitterbit/get-changed-files@v1

      - name: 🔎 Run hadolint
        run: |
          # shellcheck disable=SC2043
          for files in ${{ steps.changed_files.outputs.all }}; do
            if [[ "$(basename ${files})" == "Dockerfile" ]]; then
              echo "Hadolint $files"
              hadolint "$files"
            fi
          done

  shellcheck:
    runs-on: ubuntu-latest
    container: koalaman/shellcheck-alpine:latest
    steps:
      - name: ↩️ Checkout
        uses: actions/checkout@v4

      - name: Get changed files
        id: changed_files
        uses: jitterbit/get-changed-files@v1

      - name: 🔎 Run ShellCheck
        run: |
          # shellcheck disable=SC2043
          for files in ${{ steps.changed_files.outputs.all }}; do
            if [[ "$files" == *".sh" ]]; then
              echo "Spellcheck $files"
              shellcheck "$files"
            fi
          done

  markdownlint:
    runs-on: ubuntu-latest
    steps:
      - name: ↩️ Checkout
        uses: actions/checkout@v4
        with:
          # Full git history is needed to get a proper list of changed files within `super-linter`
          fetch-depth: 0

      - name: 🔎 Run markdownlint
        uses: nosborn/github-action-markdown-cli@v3.3.0
        with:
          config_file: .markdownlint.yaml
