Skip to content

Commit a921b7b

Browse files
authored
TEST-modin-project#2008: Reduce runtime of CI checks a lot (modin-project#6356)
Signed-off-by: Vasily Litvinov <fam1ly.n4me@yandex.ru>
1 parent 001c157 commit a921b7b

File tree

10 files changed

+288
-144
lines changed

10 files changed

+288
-144
lines changed

.github/workflows/ci-notebooks.yml

+5-26
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
- .github/workflows/ci-notebooks.yml
88
- setup.cfg
99
- setup.py
10+
- requirements/env_hdk.yml
1011
concurrency:
1112
# Cancel other jobs in the same branch. We don't care whether CI passes
1213
# on old commits.
@@ -26,41 +27,19 @@ jobs:
2627
execution: [pandas_on_ray, pandas_on_dask, pandas_on_unidist, hdk_on_native]
2728
steps:
2829
- uses: actions/checkout@v3
29-
with:
30-
fetch-depth: 1
31-
- uses: actions/setup-python@v4
32-
with:
33-
python-version: "3.8.x"
34-
architecture: "x64"
30+
- uses: ./.github/actions/python-only
3531
if: matrix.execution != 'hdk_on_native'
36-
- name: Cache conda
37-
uses: actions/cache@v3
38-
with:
39-
path: |
40-
~/conda_pkgs_dir
41-
~/.cache/pip
42-
key:
43-
${{ runner.os }}-conda-${{ hashFiles('requirements/env_hdk.yml') }}
44-
if: matrix.execution == 'hdk_on_native'
45-
- uses: conda-incubator/setup-miniconda@v2
32+
- uses: ./.github/actions/mamba-env
4633
with:
47-
miniforge-variant: Mambaforge
48-
miniforge-version: latest
49-
use-mamba: true
50-
activate-environment: modin_on_hdk
5134
environment-file: requirements/env_hdk.yml
52-
python-version: 3.8
53-
channel-priority: strict
54-
# we set use-only-tar-bz2 to false in order for conda to properly find new packages to be installed
55-
# for more info see https://github.com/conda-incubator/setup-miniconda/issues/264
56-
use-only-tar-bz2: false
35+
activate-environment: modin_on_hdk
5736
if: matrix.execution == 'hdk_on_native'
5837
- name: Cache datasets
5938
uses: actions/cache@v2
6039
with:
6140
path: taxi.csv
6241
# update cache only if notebooks require it to be changed
63-
key: hashFiles("examples/tutorial/jupyter/**")
42+
key: taxi-csv-dataset-${{ hashFiles('examples/tutorial/jupyter/**') }}
6443
# replace modin with . in the tutorial requirements file for `pandas_on_ray` and
6544
# `pandas_on_dask` since we need Modin built from sources
6645
- run: sed -i 's/modin/./g' examples/tutorial/jupyter/execution/${{ matrix.execution }}/requirements.txt

.github/workflows/ci-required.yml

+79-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ concurrency:
55
# on old commits.
66
group: ${{ github.workflow }}-${{ github.ref }}
77
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
8+
env:
9+
MODIN_GITHUB_CI: true
10+
811
jobs:
12+
913
check-pr-title:
1014
runs-on: ubuntu-latest
1115
steps:
@@ -14,6 +18,7 @@ jobs:
1418
# NOTE: If you change the allowed prefixes here, update
1519
# the documentation about them in /docs/development/contributing.rst
1620
regexp: '^(?:FEAT|DOCS|FIX|REFACTOR|TEST|PERF)-#\d+:'
21+
1722
build-docs:
1823
name: build docs
1924
runs-on: ubuntu-latest
@@ -29,5 +34,77 @@ jobs:
2934
cache-dependency-path: '**/requirements-doc.txt'
3035
- run: pip install -r docs/requirements-doc.txt
3136
- run: cd docs && sphinx-build -T -E -W -b html . build
32-
env:
33-
MODIN_GITHUB_CI: true
37+
38+
lint-pydocstyle:
39+
name: lint (pydocstyle)
40+
runs-on: ubuntu-latest
41+
steps:
42+
- uses: actions/checkout@v3
43+
- uses: ./.github/actions/python-only
44+
# The `numpydoc` version here MUST match the versions in the dev requirements files.
45+
- run: pip install pytest pytest-cov pydocstyle numpydoc==1.1.0 xgboost
46+
- run: python -m pytest scripts/test
47+
- run: pip install -e ".[all]"
48+
- run: |
49+
python scripts/doc_checker.py --add-ignore=D101,D102,D103,D105 --disable-numpydoc \
50+
modin/pandas/dataframe.py modin/pandas/series.py \
51+
modin/pandas/groupby.py \
52+
modin/pandas/series_utils.py modin/pandas/general.py \
53+
modin/pandas/plotting.py modin/pandas/utils.py \
54+
modin/pandas/iterator.py modin/pandas/indexing.py \
55+
- run: python scripts/doc_checker.py modin/core/dataframe
56+
- run: python scripts/doc_checker.py modin/core/execution/dask
57+
- run: |
58+
python scripts/doc_checker.py \
59+
modin/pandas/accessor.py modin/pandas/general.py \
60+
modin/pandas/groupby.py modin/pandas/indexing.py \
61+
modin/pandas/iterator.py modin/pandas/plotting.py \
62+
modin/pandas/series_utils.py modin/pandas/utils.py \
63+
modin/pandas/base.py \
64+
modin/pandas/io.py \
65+
asv_bench/benchmarks/utils \
66+
asv_bench/benchmarks/__init__.py asv_bench/benchmarks/io/__init__.py \
67+
asv_bench/benchmarks/scalability/__init__.py \
68+
modin/core/io \
69+
modin/experimental/core/execution/ray/implementations/pandas_on_ray \
70+
modin/experimental/core/execution/ray/implementations/pyarrow_on_ray \
71+
modin/pandas/series.py \
72+
modin/core/execution/python \
73+
modin/pandas/dataframe.py \
74+
modin/config/__init__.py \
75+
modin/config/__main__.py \
76+
modin/config/envvars.py \
77+
modin/config/pubsub.py
78+
- run: python scripts/doc_checker.py modin/distributed
79+
- run: python scripts/doc_checker.py modin/utils.py
80+
- run: python scripts/doc_checker.py modin/experimental/sklearn
81+
- run: |
82+
python scripts/doc_checker.py modin/experimental/xgboost/__init__.py \
83+
modin/experimental/xgboost/utils.py modin/experimental/xgboost/xgboost.py \
84+
modin/experimental/xgboost/xgboost_ray.py
85+
- run: python scripts/doc_checker.py modin/core/execution/ray
86+
- run: |
87+
python scripts/doc_checker.py modin/core/execution/dispatching/factories/factories.py \
88+
modin/core/execution/dispatching/factories/dispatcher.py \
89+
- run: python scripts/doc_checker.py scripts/doc_checker.py
90+
- run: |
91+
python scripts/doc_checker.py modin/experimental/pandas/io.py \
92+
modin/experimental/pandas/numpy_wrap.py modin/experimental/pandas/__init__.py
93+
- run: python scripts/doc_checker.py modin/core/storage_formats/base
94+
- run: python scripts/doc_checker.py modin/experimental/core/storage_formats/pyarrow
95+
- run: python scripts/doc_checker.py modin/core/storage_formats/pandas
96+
- run: |
97+
python scripts/doc_checker.py \
98+
modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe \
99+
modin/experimental/core/execution/native/implementations/hdk_on_native/io \
100+
modin/experimental/core/execution/native/implementations/hdk_on_native/partitioning \
101+
modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_algebra.py \
102+
modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_builder.py \
103+
modin/experimental/core/execution/native/implementations/hdk_on_native/calcite_serializer.py \
104+
modin/experimental/core/execution/native/implementations/hdk_on_native/df_algebra.py \
105+
modin/experimental/core/execution/native/implementations/hdk_on_native/expr.py \
106+
modin/experimental/core/execution/native/implementations/hdk_on_native/hdk_worker.py \
107+
- run: python scripts/doc_checker.py modin/experimental/core/storage_formats/hdk
108+
- run: python scripts/doc_checker.py modin/experimental/core/execution/native/implementations/hdk_on_native/interchange/dataframe_protocol
109+
- run: python scripts/doc_checker.py modin/experimental/batch/pipeline.py
110+
- run: python scripts/doc_checker.py modin/logging

0 commit comments

Comments
 (0)