name: validate

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

permissions: read-all

env:
  LINT_VERSION: v1.60.3

jobs:
  codespell:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@v4
    - name: install deps
      # Version of codespell bundled with Ubuntu is way old, so use pip.
      run: pip install --break-system-packages codespell==v2.3.0
    - name: run codespell
      run: codespell --dictionary=-
  lint:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 2
    - uses: actions/setup-go@v5
      with:
        go-version: 1.22
    - name: install deps
      run: |
        sudo apt-get -qq update
        sudo apt-get -qq install libseccomp-dev
    - name: lint
      uses: golangci/golangci-lint-action@v6
      with:
        version: "${{ env.LINT_VERSION }}"
        args: --verbose
    # Extra linters, only checking new code from a pull request.
    - name: Extra golangci-lint config. switcharoo
      run: mv .golangci-extra.yml golangci.yml
    - name: lint-extra
      uses: golangci/golangci-lint-action@v6
      with:
        version: "${{ env.LINT_VERSION }}"
        only-new-issues: true

    - name: validate seccomp
      run: ./tools/validate_seccomp.sh ./pkg/seccomp
