fix(data-status): iterate/expand index upto tracked directory in shal… #17494
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| schedule: | |
| - cron: '5 1 * * *' # every day at 01:05 | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| timeout-minutes: 10 | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| DVC_NO_ANALYTICS: true | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.14' | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: pyproject.toml | |
| - run: uv pip install -e ".[dev]" --system | |
| env: | |
| UV_LINK_MODE: ${{ runner.os == 'Windows' && 'symlink' || 'hardlink' }} | |
| - name: Cache mypy | |
| uses: actions/cache@v4 | |
| with: | |
| path: .mypy_cache | |
| key: mypy-${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }} | |
| - uses: pre-commit/[email protected] | |
| tests: | |
| timeout-minutes: 20 | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| pyv: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| include: | |
| - os: windows-latest | |
| pyv: "3.9" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 1" | |
| - os: windows-latest | |
| pyv: "3.9" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 2" | |
| - os: windows-latest | |
| pyv: "3.9" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 3" | |
| - os: windows-latest | |
| pyv: "3.9" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 4" | |
| - os: windows-latest | |
| pyv: "3.10" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 1" | |
| - os: windows-latest | |
| pyv: "3.10" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 2" | |
| - os: windows-latest | |
| pyv: "3.10" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 3" | |
| - os: windows-latest | |
| pyv: "3.10" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 4" | |
| - os: windows-latest | |
| pyv: "3.11" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 1" | |
| - os: windows-latest | |
| pyv: "3.11" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 2" | |
| - os: windows-latest | |
| pyv: "3.11" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 3" | |
| - os: windows-latest | |
| pyv: "3.11" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 4" | |
| - os: windows-latest | |
| pyv: "3.12" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 1" | |
| - os: windows-latest | |
| pyv: "3.12" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 2" | |
| - os: windows-latest | |
| pyv: "3.12" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 3" | |
| - os: windows-latest | |
| pyv: "3.12" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 4" | |
| - os: windows-latest | |
| pyv: "3.13" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 1" | |
| - os: windows-latest | |
| pyv: "3.13" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 2" | |
| - os: windows-latest | |
| pyv: "3.13" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 3" | |
| - os: windows-latest | |
| pyv: "3.13" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 4" | |
| - os: windows-latest | |
| pyv: "3.14" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 1" | |
| - os: windows-latest | |
| pyv: "3.14" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 2" | |
| - os: windows-latest | |
| pyv: "3.14" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 3" | |
| - os: windows-latest | |
| pyv: "3.14" | |
| pytestargs: "--splitting-algorithm=least_duration --splits 4 --group 4" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.pyv }} | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: pyproject.toml | |
| cache-suffix: ${{ matrix.pyv }} | |
| - run: uv pip install -e ".[dev]" pytest-split --system | |
| env: | |
| UV_LINK_MODE: ${{ runner.os == 'Windows' && 'symlink' || 'hardlink' }} | |
| - name: run tests | |
| timeout-minutes: 40 | |
| env: | |
| COVERAGE_CORE: sysmon | |
| PYTHONUTF8: 1 | |
| run: > | |
| pytest ${{ matrix.pytestargs }} -n=logical --dist=worksteal --timeout=300 --durations=0 | |
| --cov --cov-report=xml --cov-report=term --durations-path=./.github/.test_durations | |
| - name: upload coverage report | |
| uses: codecov/codecov-action@v5 | |
| check: | |
| if: always() | |
| needs: [tests] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} | |
| notify: | |
| if: github.ref == 'refs/heads/main' && failure() | |
| needs: [tests] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Slack Notification | |
| uses: rtCamp/[email protected] | |
| env: | |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
| SLACK_COLOR: ${{ job.status }} | |
| SLACK_MESSAGE: 'CI Failed on main :boom:' | |
| SLACK_TITLE: CI Status | |
| SLACK_USERNAME: DVC-CI |