Skip to content

Commit dc8a8d1

Browse files
committed
Merge branch 'master' into issue-37643
2 parents 5ac507b + ce34c1c commit dc8a8d1

File tree

1,108 files changed

+44689
-25058
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,108 files changed

+44689
-25058
lines changed
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Build pandas
2+
description: Rebuilds the C extensions and installs pandas
3+
runs:
4+
using: composite
5+
steps:
6+
7+
- name: Environment Detail
8+
run: |
9+
conda info
10+
conda list
11+
shell: bash -l {0}
12+
13+
- name: Build Pandas
14+
run: |
15+
python setup.py build_ext -j 2
16+
python -m pip install -e . --no-build-isolation --no-use-pep517
17+
shell: bash -l {0}

.github/actions/setup/action.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Set up pandas
2+
description: Runs all the setup steps required to have a built pandas ready to use
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Setting conda path
7+
run: echo "${HOME}/miniconda3/bin" >> $GITHUB_PATH
8+
shell: bash -l {0}
9+
10+
- name: Setup environment and build pandas
11+
run: ci/setup_env.sh
12+
shell: bash -l {0}

.github/workflows/ci.yml

+25-19
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,8 @@ jobs:
4141
environment-file: ${{ env.ENV_FILE }}
4242
use-only-tar-bz2: true
4343

44-
- name: Environment Detail
45-
run: |
46-
conda info
47-
conda list
48-
4944
- name: Build Pandas
50-
run: |
51-
python setup.py build_ext -j 2
52-
python -m pip install -e . --no-build-isolation --no-use-pep517
45+
uses: ./.github/actions/build_pandas
5346

5447
- name: Linting
5548
run: ci/code_checks.sh lint
@@ -100,14 +93,11 @@ jobs:
10093
runs-on: ubuntu-latest
10194
steps:
10295

103-
- name: Setting conda path
104-
run: echo "${HOME}/miniconda3/bin" >> $GITHUB_PATH
105-
10696
- name: Checkout
10797
uses: actions/checkout@v1
10898

109-
- name: Setup environment and build pandas
110-
run: ci/setup_env.sh
99+
- name: Set up pandas
100+
uses: ./.github/actions/setup
111101

112102
- name: Build website
113103
run: |
@@ -139,21 +129,37 @@ jobs:
139129
run: rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/dev
140130
if: github.event_name == 'push'
141131

132+
- name: Move docs into site directory
133+
run: mv doc/build/html web/build/docs
134+
- name: Save website as an artifact
135+
uses: actions/upload-artifact@v2
136+
with:
137+
name: website
138+
path: web/build
139+
retention-days: 14
140+
142141
data_manager:
143142
name: Test experimental data manager
144143
runs-on: ubuntu-latest
144+
strategy:
145+
matrix:
146+
pattern: ["not slow and not network and not clipboard", "slow"]
145147
steps:
146148

147-
- name: Setting conda path
148-
run: echo "${HOME}/miniconda3/bin" >> $GITHUB_PATH
149-
150149
- name: Checkout
151150
uses: actions/checkout@v1
152151

153-
- name: Setup environment and build pandas
154-
run: ci/setup_env.sh
152+
- name: Set up pandas
153+
uses: ./.github/actions/setup
155154

156155
- name: Run tests
156+
env:
157+
PANDAS_DATA_MANAGER: array
158+
PATTERN: ${{ matrix.pattern }}
159+
PYTEST_WORKERS: "auto"
157160
run: |
158161
source activate pandas-dev
159-
pytest pandas/tests/frame/methods --array-manager
162+
ci/run_tests.sh
163+
164+
- name: Print skipped tests
165+
run: python ci/print_skipped.py

.github/workflows/database.yml

+15-99
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,19 @@ env:
1212
PYTEST_WORKERS: "auto"
1313
PANDAS_CI: 1
1414
PATTERN: ((not slow and not network and not clipboard) or (single and db))
15+
COVERAGE: true
1516

1617
jobs:
17-
Linux_py37_locale:
18+
Linux_py37_IO:
1819
runs-on: ubuntu-latest
1920
defaults:
2021
run:
2122
shell: bash -l {0}
2223

23-
env:
24-
ENV_FILE: ci/deps/actions-37-locale.yaml
25-
LOCALE_OVERRIDE: zh_CN.UTF-8
24+
strategy:
25+
matrix:
26+
ENV_FILE: [ci/deps/actions-37-db-min.yaml, ci/deps/actions-37-db.yaml]
27+
fail-fast: false
2628

2729
services:
2830
mysql:
@@ -63,27 +65,20 @@ jobs:
6365
with:
6466
path: ~/conda_pkgs_dir
6567
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
66-
hashFiles('${{ env.ENV_FILE }}') }}
68+
hashFiles('${{ matrix.ENV_FILE }}') }}
6769

6870
- uses: conda-incubator/setup-miniconda@v2
6971
with:
7072
activate-environment: pandas-dev
7173
channel-priority: strict
72-
environment-file: ${{ env.ENV_FILE }}
74+
environment-file: ${{ matrix.ENV_FILE }}
7375
use-only-tar-bz2: true
7476

75-
- name: Environment Detail
76-
run: |
77-
conda info
78-
conda list
79-
8077
- name: Build Pandas
81-
run: |
82-
python setup.py build_ext -j 2
83-
python -m pip install -e . --no-build-isolation --no-use-pep517
78+
uses: ./.github/actions/build_pandas
8479

8580
- name: Test
86-
run: ci/run_tests.sh
81+
run: pytest -m "${{ env.PATTERN }}" -n 2 --dist=loadfile -s --strict-markers --durations=30 --junitxml=test-data.xml -s --cov=pandas --cov-report=xml pandas/tests/io
8782
if: always()
8883

8984
- name: Build Version
@@ -99,88 +94,9 @@ jobs:
9994
- name: Print skipped tests
10095
run: python ci/print_skipped.py
10196

102-
Linux_py37_cov:
103-
runs-on: ubuntu-latest
104-
defaults:
105-
run:
106-
shell: bash -l {0}
107-
108-
env:
109-
ENV_FILE: ci/deps/actions-37-cov.yaml
110-
PANDAS_TESTING_MODE: deprecate
111-
COVERAGE: true
112-
113-
services:
114-
mysql:
115-
image: mysql
116-
env:
117-
MYSQL_ALLOW_EMPTY_PASSWORD: yes
118-
MYSQL_DATABASE: pandas
119-
options: >-
120-
--health-cmd "mysqladmin ping"
121-
--health-interval 10s
122-
--health-timeout 5s
123-
--health-retries 5
124-
ports:
125-
- 3306:3306
126-
127-
postgres:
128-
image: postgres
129-
env:
130-
POSTGRES_USER: postgres
131-
POSTGRES_PASSWORD: postgres
132-
POSTGRES_DB: pandas
133-
options: >-
134-
--health-cmd pg_isready
135-
--health-interval 10s
136-
--health-timeout 5s
137-
--health-retries 5
138-
ports:
139-
- 5432:5432
140-
141-
steps:
142-
- name: Checkout
143-
uses: actions/checkout@v1
144-
145-
- name: Cache conda
146-
uses: actions/cache@v1
147-
env:
148-
CACHE_NUMBER: 0
149-
with:
150-
path: ~/conda_pkgs_dir
151-
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
152-
hashFiles('${{ env.ENV_FILE }}') }}
153-
154-
- uses: conda-incubator/setup-miniconda@v2
97+
- name: Upload coverage to Codecov
98+
uses: codecov/codecov-action@v1
15599
with:
156-
activate-environment: pandas-dev
157-
channel-priority: strict
158-
environment-file: ${{ env.ENV_FILE }}
159-
use-only-tar-bz2: true
160-
161-
- name: Environment Detail
162-
run: |
163-
conda info
164-
conda list
165-
166-
- name: Build Pandas
167-
run: |
168-
python setup.py build_ext -j 2
169-
python -m pip install -e . --no-build-isolation --no-use-pep517
170-
171-
- name: Test
172-
run: ci/run_tests.sh
173-
if: always()
174-
175-
- name: Build Version
176-
run: pushd /tmp && python -c "import pandas; pandas.show_versions();" && popd
177-
178-
- name: Publish test results
179-
uses: actions/upload-artifact@master
180-
with:
181-
name: Test results
182-
path: test-data.xml
183-
if: failure()
184-
185-
- name: Print skipped tests
186-
run: python ci/print_skipped.py
100+
flags: unittests
101+
name: codecov-pandas
102+
fail_ci_if_error: true

.github/workflows/posix.yml

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Posix
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches:
8+
- master
9+
- 1.2.x
10+
11+
env:
12+
PYTEST_WORKERS: "auto"
13+
PANDAS_CI: 1
14+
15+
jobs:
16+
pytest:
17+
runs-on: ubuntu-latest
18+
defaults:
19+
run:
20+
shell: bash -l {0}
21+
strategy:
22+
matrix:
23+
settings: [
24+
[actions-37-minimum_versions.yaml, "not slow and not network and not clipboard", "", "", "", "", ""],
25+
[actions-37.yaml, "not slow and not network and not clipboard", "", "", "", "", ""],
26+
[actions-37-locale_slow.yaml, "slow", "language-pack-it xsel", "it_IT.utf8", "it_IT.utf8", "", ""],
27+
[actions-37-slow.yaml, "slow", "", "", "", "", ""],
28+
[actions-38.yaml, "not slow and not network and not clipboard", "", "", "", "", ""],
29+
[actions-38-slow.yaml, "slow", "", "", "", "", ""],
30+
[actions-38-locale.yaml, "not slow and not network", "language-pack-zh-hans xsel", "zh_CN.utf8", "zh_CN.utf8", "", ""],
31+
[actions-38-numpydev.yaml, "not slow and not network", "xsel", "", "", "deprecate", "-W error"],
32+
[actions-39.yaml, "not slow and not network and not clipboard", "", "", "", "", ""]
33+
]
34+
fail-fast: false
35+
env:
36+
COVERAGE: true
37+
ENV_FILE: ci/deps/${{ matrix.settings[0] }}
38+
PATTERN: ${{ matrix.settings[1] }}
39+
EXTRA_APT: ${{ matrix.settings[2] }}
40+
LANG: ${{ matrix.settings[3] }}
41+
LC_ALL: ${{ matrix.settings[4] }}
42+
PANDAS_TESTING_MODE: ${{ matrix.settings[5] }}
43+
TEST_ARGS: ${{ matrix.settings[6] }}
44+
45+
steps:
46+
- name: Checkout
47+
uses: actions/checkout@v1
48+
49+
- name: Cache conda
50+
uses: actions/cache@v1
51+
env:
52+
CACHE_NUMBER: 0
53+
with:
54+
path: ~/conda_pkgs_dir
55+
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
56+
hashFiles('${{ env.ENV_FILE }}') }}
57+
58+
- name: Extra installs
59+
run: sudo apt-get update && sudo apt-get install -y libc6-dev-i386 ${{ env.EXTRA_APT }}
60+
61+
- uses: conda-incubator/setup-miniconda@v2
62+
with:
63+
activate-environment: pandas-dev
64+
channel-priority: flexible
65+
environment-file: ${{ env.ENV_FILE }}
66+
use-only-tar-bz2: true
67+
68+
- name: Build Pandas
69+
uses: ./.github/actions/build_pandas
70+
71+
- name: Test
72+
run: ci/run_tests.sh
73+
if: always()
74+
75+
- name: Build Version
76+
run: pushd /tmp && python -c "import pandas; pandas.show_versions();" && popd
77+
78+
- name: Publish test results
79+
uses: actions/upload-artifact@master
80+
with:
81+
name: Test results
82+
path: test-data.xml
83+
if: failure()
84+
85+
- name: Print skipped tests
86+
run: python ci/print_skipped.py
87+
88+
- name: Upload coverage to Codecov
89+
uses: codecov/codecov-action@v1
90+
with:
91+
flags: unittests
92+
name: codecov-pandas
93+
fail_ci_if_error: false

0 commit comments

Comments
 (0)