name: Linters
permissions: read-all

on:
  pull_request:
    branches:
    - main
  workflow_dispatch:

jobs:
  jshint:
    name: Javascript Linter
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Install linters
      run: |
        sudo npm install -g jshint@2.13.6 eslint@8.57.0
    - name: Run jshint
      run: jshint internal/ui/static/js/*.js
    - name: Run ESLint
      run: eslint internal/ui/static/js/*.js

  golangci:
    name: Golang Linters
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: "1.22.x"
      - run: "go vet ./..."
      - uses: golangci/golangci-lint-action@v6
        with:
          args: --timeout 10m --skip-dirs tests --disable errcheck --enable sqlclosecheck --enable misspell --enable gofmt --enable goimports --enable whitespace --enable gocritic
      - uses: dominikh/staticcheck-action@v1.3.1
        with:
          version: "2023.1.7"
          install-go: false
