Skip to content

Commit 642a308

Browse files
committed
Merge branch 'master' into doc/info
2 parents b632c6c + 3bbb93c commit 642a308

File tree

1,274 files changed

+74092
-39871
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,274 files changed

+74092
-39871
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

+35-23
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ jobs:
2222

2323
steps:
2424
- name: Checkout
25-
uses: actions/checkout@v1
25+
uses: actions/checkout@v2
26+
with:
27+
fetch-depth: 0
2628

2729
- name: Looking for unwanted patterns
2830
run: ci/code_checks.sh patterns
@@ -41,15 +43,8 @@ jobs:
4143
environment-file: ${{ env.ENV_FILE }}
4244
use-only-tar-bz2: true
4345

44-
- name: Environment Detail
45-
run: |
46-
conda info
47-
conda list
48-
4946
- 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
47+
uses: ./.github/actions/build_pandas
5348

5449
- name: Linting
5550
run: ci/code_checks.sh lint
@@ -72,7 +67,7 @@ jobs:
7267
if: always()
7368

7469
- name: Testing docstring validation script
75-
run: pytest --capture=no --strict-markers scripts
70+
run: pytest scripts
7671
if: always()
7772

7873
- name: Running benchmarks
@@ -100,14 +95,13 @@ jobs:
10095
runs-on: ubuntu-latest
10196
steps:
10297

103-
- name: Setting conda path
104-
run: echo "${HOME}/miniconda3/bin" >> $GITHUB_PATH
105-
10698
- name: Checkout
107-
uses: actions/checkout@v1
99+
uses: actions/checkout@v2
100+
with:
101+
fetch-depth: 0
108102

109-
- name: Setup environment and build pandas
110-
run: ci/setup_env.sh
103+
- name: Set up pandas
104+
uses: ./.github/actions/setup
111105

112106
- name: Build website
113107
run: |
@@ -139,21 +133,39 @@ jobs:
139133
run: rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/dev
140134
if: github.event_name == 'push'
141135

136+
- name: Move docs into site directory
137+
run: mv doc/build/html web/build/docs
138+
- name: Save website as an artifact
139+
uses: actions/upload-artifact@v2
140+
with:
141+
name: website
142+
path: web/build
143+
retention-days: 14
144+
142145
data_manager:
143146
name: Test experimental data manager
144147
runs-on: ubuntu-latest
148+
strategy:
149+
matrix:
150+
pattern: ["not slow and not network and not clipboard", "slow"]
145151
steps:
146152

147-
- name: Setting conda path
148-
run: echo "${HOME}/miniconda3/bin" >> $GITHUB_PATH
149-
150153
- name: Checkout
151-
uses: actions/checkout@v1
154+
uses: actions/checkout@v2
155+
with:
156+
fetch-depth: 0
152157

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

156161
- name: Run tests
162+
env:
163+
PANDAS_DATA_MANAGER: array
164+
PATTERN: ${{ matrix.pattern }}
165+
PYTEST_WORKERS: "auto"
157166
run: |
158167
source activate pandas-dev
159-
pytest pandas/tests/frame/methods --array-manager
168+
ci/run_tests.sh
169+
170+
- name: Print skipped tests
171+
run: python ci/print_skipped.py

.github/workflows/database.yml

+20-102
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:
@@ -54,36 +56,31 @@ jobs:
5456

5557
steps:
5658
- name: Checkout
57-
uses: actions/checkout@v1
59+
uses: actions/checkout@v2
60+
with:
61+
fetch-depth: 0
5862

5963
- name: Cache conda
60-
uses: actions/cache@v1
64+
uses: actions/cache@v2
6165
env:
6266
CACHE_NUMBER: 0
6367
with:
6468
path: ~/conda_pkgs_dir
6569
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
66-
hashFiles('${{ env.ENV_FILE }}') }}
70+
hashFiles('${{ matrix.ENV_FILE }}') }}
6771

6872
- uses: conda-incubator/setup-miniconda@v2
6973
with:
7074
activate-environment: pandas-dev
71-
channel-priority: strict
72-
environment-file: ${{ env.ENV_FILE }}
75+
channel-priority: flexible
76+
environment-file: ${{ matrix.ENV_FILE }}
7377
use-only-tar-bz2: true
7478

75-
- name: Environment Detail
76-
run: |
77-
conda info
78-
conda list
79-
8079
- 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
80+
uses: ./.github/actions/build_pandas
8481

8582
- name: Test
86-
run: ci/run_tests.sh
83+
run: pytest -m "${{ env.PATTERN }}" -n 2 --dist=loadfile --cov=pandas --cov-report=xml pandas/tests/io
8784
if: always()
8885

8986
- name: Build Version
@@ -99,88 +96,9 @@ jobs:
9996
- name: Print skipped tests
10097
run: python ci/print_skipped.py
10198

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
155-
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
99+
- name: Upload coverage to Codecov
100+
uses: codecov/codecov-action@v1
180101
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
102+
flags: unittests
103+
name: codecov-pandas
104+
fail_ci_if_error: true

.github/workflows/posix.yml

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
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@v2
48+
with:
49+
fetch-depth: 0
50+
51+
- name: Cache conda
52+
uses: actions/cache@v2
53+
env:
54+
CACHE_NUMBER: 0
55+
with:
56+
path: ~/conda_pkgs_dir
57+
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
58+
hashFiles('${{ env.ENV_FILE }}') }}
59+
60+
- name: Extra installs
61+
run: sudo apt-get update && sudo apt-get install -y libc6-dev-i386 ${{ env.EXTRA_APT }}
62+
63+
- uses: conda-incubator/setup-miniconda@v2
64+
with:
65+
activate-environment: pandas-dev
66+
channel-priority: flexible
67+
environment-file: ${{ env.ENV_FILE }}
68+
use-only-tar-bz2: true
69+
70+
- name: Build Pandas
71+
uses: ./.github/actions/build_pandas
72+
73+
- name: Test
74+
run: ci/run_tests.sh
75+
if: always()
76+
77+
- name: Build Version
78+
run: pushd /tmp && python -c "import pandas; pandas.show_versions();" && popd
79+
80+
- name: Publish test results
81+
uses: actions/upload-artifact@master
82+
with:
83+
name: Test results
84+
path: test-data.xml
85+
if: failure()
86+
87+
- name: Print skipped tests
88+
run: python ci/print_skipped.py
89+
90+
- name: Upload coverage to Codecov
91+
uses: codecov/codecov-action@v1
92+
with:
93+
flags: unittests
94+
name: codecov-pandas
95+
fail_ci_if_error: false

0 commit comments

Comments
 (0)