name: golangci-lint

on:
  push:
    branches: [ main, release-** ]
  pull_request:
    branches: [ main, release-** ]
  workflow_dispatch:

env:
 BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
 EXCLUDE_ENTERPRISE: true

jobs:
  down-migrations:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v3
        with:
          path: "focalboard"
      - name: assert that down migrations are SELECT 1 scripts
        run: |
          cd focalboard
          echo 'SELECT 1;' > downmigration
          for file in server/services/store/sqlstore/migrations/*.down.sql; do diff -Bw downmigration $file; done

  golangci:
    name: plugin
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/setup-go@v3
        with:
          go-version: 1.21
      - uses: actions/checkout@v3
        with:
          path: "focalboard"
      - name: set up golangci-lint
        run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.59.0
      - name: lint
        run: |
          cd focalboard
          make server-lint
