mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-06 23:09:55 +01:00
We don't have aiohttp support yet, due to which we have to install without cythonized extension. Similarly, there has been some changes in how dataclasses disallows some mutable arguments to be set as a class property, due to which `hydra.conf` fails to import in 3.11. See https://github.com/python/cpython/pull/29867. For now, I have patched the module and avoid importing as a pytest-plugin. dvc-hdfs/pyarrow is not there yet, we'll usually see a release 2-3 months after official reelase. dvc-hdfs is skipped in 3.11 in extras_requires. `--set-params` will return a nice error message if hydra cannot be imported in 3.11. I decided to only patch that in tests.
102 lines
2.6 KiB
YAML
102 lines
2.6 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
pull_request: {}
|
|
push: {}
|
|
schedule:
|
|
- cron: '5 1 * * *' # every day at 01:05
|
|
|
|
env:
|
|
DVC_TEST: "true"
|
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
|
SHELL: /bin/bash
|
|
|
|
jobs:
|
|
lint:
|
|
timeout-minutes: 10
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Cancel Previous Runs
|
|
uses: styfle/[email protected]
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: 3.8
|
|
- name: Install requirements
|
|
run: |
|
|
pip install --upgrade pip setuptools wheel
|
|
pip install collective.checkdocs==0.2
|
|
pip install ".[dev]" pre-commit
|
|
- name: Check README
|
|
run: python setup.py checkdocs
|
|
- uses: pre-commit/[email protected]
|
|
tests:
|
|
timeout-minutes: 45
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04, windows-latest, macos-latest]
|
|
pyv: ["3.8", "3.9", "3.10"]
|
|
include:
|
|
- {os: ubuntu-latest, pyv: "3.11-dev"}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.pyv }}
|
|
- name: get pip cache dir
|
|
id: pip-cache-dir
|
|
run: |
|
|
echo "::set-output name=dir::$(pip cache dir)"
|
|
- name: set pip cache
|
|
id: pip-cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ${{ steps.pip-cache-dir.outputs.dir }}
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('setup.cfg') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
- name: install
|
|
if: steps.cache.pip-cache-dir.cache-hit != 'true'
|
|
run: |
|
|
pip install --upgrade pip setuptools wheel
|
|
pip install -e ".[dev]"
|
|
env:
|
|
AIOHTTP_NO_EXTENSIONS: ${{ matrix.pyv == '3.11-dev' && '1' }}
|
|
- name: run tests
|
|
timeout-minutes: 40
|
|
run: >-
|
|
python -m tests -n=auto
|
|
--cov-report=xml --cov-report=term
|
|
${{ env.extra_test_args }}
|
|
- name: upload coverage report
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
file: ./coverage.xml
|
|
fail_ci_if_error: false
|
|
notify:
|
|
if: github.ref == 'refs/heads/main' && failure()
|
|
needs:
|
|
- lint
|
|
- 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
|