Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: enable arm64 build on drone.io #39730 #39742

Closed
wants to merge 30 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
70d0618
enable arm64 build on drone.io #39730
fangchenli Feb 11, 2021
9684d73
enable ci on pr
fangchenli Feb 11, 2021
4a289a9
check arch
fangchenli Feb 11, 2021
0e2659c
fixi arch
fangchenli Feb 11, 2021
4b68143
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 11, 2021
61a613d
update pip
fangchenli Feb 11, 2021
938c751
fix install
fangchenli Feb 11, 2021
2cf90ef
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 13, 2021
a2d5f0e
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 15, 2021
2988f27
use minimal deps
fangchenli Feb 15, 2021
80670a9
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 20, 2021
46237e7
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 21, 2021
b558c72
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 23, 2021
d5e95ea
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Feb 25, 2021
cae3548
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 1, 2021
5eb3ebf
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 7, 2021
88236f2
seperate steps, add git tags
fangchenli Mar 8, 2021
c4552ba
seperate steps, add shared venv
fangchenli Mar 8, 2021
b68fe1c
xfail arm64 tests
fangchenli Mar 8, 2021
73dfa45
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 8, 2021
5e8d6fc
sort import
fangchenli Mar 8, 2021
fc41c0c
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 9, 2021
66f0e3e
remove arm_slow marker
fangchenli Mar 9, 2021
e8d5713
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 10, 2021
3bc9d12
skip slow arm test
fangchenli Mar 10, 2021
7fc92d9
sort import
fangchenli Mar 10, 2021
99de571
skip slow arm64 tests
fangchenli Mar 12, 2021
accad8f
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 12, 2021
db97957
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 12, 2021
9281217
Merge remote-tracking branch 'upstream/master' into drone-ci
fangchenli Mar 13, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .drone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
kind: pipeline
type: docker
name: py37-arm64

platform:
arch: arm64

steps:
- name: Fetch Tags
image: alpine/git
commands:
- git fetch --tags

- name: Setup Environment
image: python:3.7
commands:
- python -m venv pandas-dev
- . pandas-dev/bin/activate
- python -m pip install --upgrade pip setuptools
- python -m pip install cython numpy python-dateutil pytz pytest pytest-xdist hypothesis

- name: Build Pandas
image: python:3.7
commands:
- . pandas-dev/bin/activate
- python setup.py build_ext -j 4
- python -m pip install -e . --no-build-isolation --no-use-pep517

- name: Run Test
image: python:3.7
commands:
- . pandas-dev/bin/activate
- pytest -m "(not slow and not network and not clipboard)" -n 2 --dist=loadfile -s --strict-markers --durations=30 --junitxml=test-data.xml pandas

trigger:
branch:
- master
- feature/*
event:
- push
- pull_request
78 changes: 0 additions & 78 deletions .travis.yml

This file was deleted.

File renamed without changes.
1 change: 1 addition & 0 deletions pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
PY39 = sys.version_info >= (3, 9)
PYPY = platform.python_implementation() == "PyPy"
IS64 = sys.maxsize > 2 ** 32
ARM64 = platform.machine() in ["arm64", "aarch64"]


def set_function_name(f: F, name: str, cls) -> F:
Expand Down
3 changes: 0 additions & 3 deletions pandas/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,6 @@ def pytest_configure(config):
)
config.addinivalue_line("markers", "high_memory: mark a test as a high-memory only")
config.addinivalue_line("markers", "clipboard: mark a pd.read_clipboard test")
config.addinivalue_line(
"markers", "arm_slow: mark a test as slow for arm64 architecture"
)


def pytest_addoption(parser):
Expand Down
7 changes: 5 additions & 2 deletions pandas/tests/arithmetic/test_datetime64.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@

from pandas._libs.tslibs.conversion import localize_pydatetime
from pandas._libs.tslibs.offsets import shift_months
from pandas.compat import np_datetime64_compat
from pandas.compat import (
ARM64,
np_datetime64_compat,
)
from pandas.errors import PerformanceWarning

import pandas as pd
Expand Down Expand Up @@ -806,7 +809,7 @@ class TestDatetime64Arithmetic:
# -------------------------------------------------------------
# Addition/Subtraction of timedelta-like

@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
def test_dt64arr_add_timedeltalike_scalar(
self, tz_naive_fixture, two_hours, box_with_array
):
Expand Down
7 changes: 5 additions & 2 deletions pandas/tests/frame/test_constructors.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@
import pytest
import pytz

from pandas.compat import np_version_under1p19
from pandas.compat import (
ARM64,
np_version_under1p19,
)
import pandas.util._test_decorators as td

from pandas.core.dtypes.common import is_integer_dtype
Expand Down Expand Up @@ -2163,7 +2166,7 @@ def test_to_frame_with_falsey_names(self):
result = DataFrame(Series(name=0, dtype=object)).dtypes
tm.assert_series_equal(result, expected)

@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
@pytest.mark.parametrize("dtype", [None, "uint8", "category"])
def test_constructor_range_dtype(self, dtype):
expected = DataFrame({"A": [0, 1, 2, 3, 4]}, dtype=dtype or "int64")
Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/groupby/test_groupby_dropna.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

import pandas as pd
import pandas._testing as tm

Expand Down Expand Up @@ -262,7 +264,7 @@ def test_groupby_dropna_multi_index_dataframe_agg(dropna, tuples, outputs):
tm.assert_frame_equal(grouped, expected)


@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
@pytest.mark.parametrize(
"datetime1, datetime2",
[
Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/groupby/transform/test_transform.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

from pandas.core.dtypes.common import (
ensure_platform_int,
is_timedelta64_dtype,
Expand Down Expand Up @@ -631,7 +633,7 @@ def test_groupby_cum_skipna(op, skipna, input, exp):
tm.assert_series_equal(expected, result)


@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
@pytest.mark.parametrize(
"op, args, targop",
[
Expand Down
1 change: 0 additions & 1 deletion pandas/tests/indexes/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -699,7 +699,6 @@ def test_is_unique(self):
index_na_dup = index_na.insert(0, np.nan)
assert index_na_dup.is_unique is False

@pytest.mark.arm_slow
def test_engine_reference_cycle(self):
# GH27585
index = self.create_index()
Expand Down
3 changes: 3 additions & 0 deletions pandas/tests/indexes/interval/test_astype.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

from pandas.core.dtypes.dtypes import (
CategoricalDtype,
IntervalDtype,
Expand Down Expand Up @@ -168,6 +170,7 @@ def test_subtype_integer_with_non_integer_borders(self, subtype):
)
tm.assert_index_equal(result, expected)

@pytest.mark.xfail(ARM64, reason="GH 38923")
def test_subtype_integer_errors(self):
# float64 -> uint64 fails with negative values
index = interval_range(-10.0, 10.0)
Expand Down
3 changes: 2 additions & 1 deletion pandas/tests/indexes/multi/test_duplicates.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import pytest

from pandas._libs import hashtable
from pandas.compat import ARM64

from pandas import (
DatetimeIndex,
Expand Down Expand Up @@ -244,7 +245,7 @@ def test_duplicated(idx_dup, keep, expected):
tm.assert_numpy_array_equal(result, expected)


@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
def test_duplicated_large(keep):
# GH 9125
n, k = 200, 5000
Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/indexes/multi/test_integrity.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike

import pandas as pd
Expand Down Expand Up @@ -122,7 +124,7 @@ def test_consistency():
assert index.is_unique is False


@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
def test_hash_collisions():
# non-smoke test that we don't get hash collisions

Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/indexes/multi/test_setops.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

import pandas as pd
from pandas import (
Index,
Expand Down Expand Up @@ -41,7 +43,7 @@ def test_intersection_base(idx, sort, klass):
first.intersection([1, 2, 3], sort=sort)


@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
@pytest.mark.parametrize("klass", [MultiIndex, np.array, Series, list])
def test_union_base(idx, sort, klass):
first = idx[::-1]
Expand Down
3 changes: 2 additions & 1 deletion pandas/tests/indexes/period/test_indexing.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import pytest

from pandas._libs.tslibs import period as libperiod
from pandas.compat import ARM64
from pandas.errors import InvalidIndexError

import pandas as pd
Expand Down Expand Up @@ -182,7 +183,7 @@ def test_getitem_list_periods(self):
exp = ts.iloc[[1]]
tm.assert_series_equal(ts[[Period("2012-01-02", freq="D")]], exp)

@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
def test_getitem_seconds(self):
# GH#6716
didx = date_range(start="2013/01/01 09:00:00", freq="S", periods=4000)
Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/indexing/interval/test_interval.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

import pandas as pd
from pandas import (
DataFrame,
Expand Down Expand Up @@ -71,7 +73,7 @@ def test_getitem_non_matching(self, series_with_interval_index, indexer_sl):
with pytest.raises(KeyError, match=r"^\[-1\]$"):
indexer_sl(ser)[[-1, 3]]

@pytest.mark.arm_slow
@pytest.mark.skipif(ARM64, reason="timeout on ARM64 GH 36719")
def test_loc_getitem_large_series(self):
ser = Series(
np.arange(1000000), index=IntervalIndex.from_breaks(np.arange(1000001))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ def test_cache_updating():
assert result == 2


@pytest.mark.arm_slow
def test_indexer_caching():
# GH5727
# make sure that indexers are in the _internal_names_set
Expand Down
Loading