name: Go

on: [push, pull_request]

env:
  GOTOOLCHAIN: local

jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        go-version: ["1.25", "1.26"]
    name: Lint ${{ matrix.go-version == '1.26' && '(latest)' || '(old)' }}

    steps:
      - uses: actions/checkout@v6

      - name: Set up Go
        uses: actions/setup-go@v6
        with:
          go-version: ${{ matrix.go-version }}
          cache: true

      - name: Install libolm
        run: sudo apt-get install libolm-dev libolm3

      - name: Install dependencies
        run: |
          go install golang.org/x/tools/cmd/goimports@latest
          go install honnef.co/go/tools/cmd/staticcheck@latest
          export PATH="$HOME/go/bin:$PATH"

      - name: Install pre-commit
        run: pip install pre-commit

      - name: Lint
        run: pre-commit run -a
