name: "Branch coverage"
on:
  push:
    branches:
      - main
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [main]

permissions: read-all

jobs:
  branch-cov:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        os: [linux]
        arch: [amd64]
    name: coverage
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3
        with:
          go-version: 1.19.x
      - name: Install dependencies
        run: |
          cd $GITHUB_WORKSPACE
          sudo apt-get update
          sudo apt-get install -y libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config
          mkdir -p test/data
          cd test/data
          ../scripts/gen_certs.sh
          htpasswd -bBn test test123 > htpasswd
          go install github.com/rillig/gobco@latest
      - name: Check for branch coverage
        continue-on-error: true
        run: |
          cd $GITHUB_WORKSPACE
          for i in $(find . -type f \( -name "*.go" -not -name "*_test.go" -not -name "generated.go" \)); do
            echo $i;
            gobco -test '-tags=sync,search,scrub,metrics,containers_image_openpgp' $i;
            gobco -test '-tags=minimal,containers_image_openpgp' $i;
          done
        env:
          OS: ${{ matrix.os }}
          ARCH: ${{ matrix.arch }}