name: Project

on:
  push:
    branches: [main]
  pull_request:
    types: [opened, reopened, synchronize, edited]
    branches: [main]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - uses: pre-commit/action@v2.0.3

  check-shell:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - run: |
          python -m venv venv && source venv/bin/activate
          pip install gh-release-install

          sudo venv/bin/gh-release-install \
            koalaman/shellcheck \
            shellcheck-{tag}.linux.x86_64.tar.xz --extract shellcheck-{tag}/shellcheck \
            /usr/bin/shellcheck

          sudo venv/bin/gh-release-install \
            mvdan/sh \
            shfmt_{tag}_linux_amd64 \
            /usr/bin/shfmt

      - run: SEVERITY=warning make shell-check

  test-tools:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - run: make all
        working-directory: tools