name: Build CLI
on:
  pull_request:
  push:
    branches:
      - main

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version-file: go.mod
      - name: Build
        run: make build-cli
      - name: Analysis
        uses: golangci/golangci-lint-action@v6
        with:
          args: -v
      - name: Run tests
        run: |
          make test-cli
          sudo env PATH="$PATH" make test-root
      - name: Merge coverage
        run: |
          echo "mode: atomic" > coverage.out
          grep -v "mode: atomic" coverage.txt >> coverage.out
          grep -v "mode: atomic" coverage_root.txt >> coverage.out
