name: "CI Coverage" on: pull_request: branches: - main - "litellm_**" push: branches: - main permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: assert-ci-coverage: name: assert-ci-coverage runs-on: ubuntu-latest timeout-minutes: 5 permissions: contents: read steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" - name: Assert every test file and Dockerfile is invoked by a job run: | python -m pip install "pyyaml==6.0.3" python .github/scripts/assert_ci_coverage.py # The census asks whether a job names a file; this asks whether that job's -k # then throws it back out. A file both globbed and deselected everywhere runs # nowhere while counting as covered, which is how the caching suite went unrun. - name: Assert no -k expression deselects a file from every job that globs it run: python .github/scripts/assert_ci_coverage.py --slices - name: Assert .github/workflows/ holds only workflows, correctly named run: python .github/scripts/assert_workflow_dir_hygiene.py