name: validate

# Default to 'contents: read', which grants actions to read commits.
#
# If any permission is set, any permission not included in the list is
# implicitly set to "none".
#
# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

on:
  workflow_dispatch:
  push:
    branches:
      - 'master'
      - '[0-9]+.[0-9]+'
      - '[0-9]+.x'
    tags:
      - 'v*'
  pull_request:

jobs:
  validate:
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
        target:
          - lint
          - shellcheck
          - validate-vendor
          - update-authors # ensure authors update target runs fine
    steps:
      -
        name: Run
        uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
        with:
          targets: ${{ matrix.target }}

  # check that the generated Markdown and the checked-in files match
  validate-md:
    runs-on: ubuntu-24.04
    steps:
      -
        name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
      -
        name: Generate
        shell: 'script --return --quiet --command "bash {0}"'
        run: |
          make -f docker.Makefile mddocs
      -
        name: Validate
        run: |
          if [[ $(git diff --stat) != '' ]]; then
            echo 'fail: generated files do not match checked-in files'
            git --no-pager diff
            exit 1
          fi

  validate-make:
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
        target:
          - yamldocs # ensure yamldocs target runs fine
          - manpages # ensure manpages target runs fine
    steps:
      -
        name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
      -
        name: Run
        shell: 'script --return --quiet --command "bash {0}"'
        run: |
          make -f docker.Makefile ${{ matrix.target }}

  validate-gocompat:
    runs-on: ubuntu-24.04
    env:
      GOPATH: ${{ github.workspace }}
      GO111MODULE: off
    steps:
      -
        name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
        with:
          path: src/github.com/docker/cli
      -
        name: Set up Go
        uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
        with:
          go-version: "1.26.2"
          cache: false
      -
        name: Run gocompat check
        shell: 'script --return --quiet --command "bash {0}"'
        working-directory: ${{ github.workspace }}/src/github.com/docker/cli
        run: |
          make -C ./internal/gocompat verify
