name: code coverage

on:
  - push
  - pull_request

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    name: Code Coverage
    steps:
      - name: Checkout
        uses: actions/checkout@main
      - name: Set up Python
        uses: actions/setup-python@main
        with:
          python-version: '3.13'
      - name: Install coverage
        run: pip install coverage
      - name: Install astroalign dependencies
        run: pip install numpy scipy scikit-image "sep>=1.4.0"
      - name: Install test dependencies
        run: pip install -r tests/requirements.txt
      - name: Run coverage
        run: |
          python -m coverage run -m unittest -v
          coverage xml --fail-under=80 -o coverage.xml
      - name: Code Coverage Report
        uses: irongut/CodeCoverageSummary@v1.3.0
        with:
          filename: coverage.xml
          badge: true
          fail_below_min: true
          format: markdown
          hide_branch_rate: false
          hide_complexity: true
          indicators: true
          output: both
          thresholds: '60 80'
