Unverified Commit fec9afa4 authored by James Lamb's avatar James Lamb Committed by GitHub
Browse files

[ci] restore aarch64 linux builds (fixes #6509) (#6527)

parent 1886bf51
...@@ -191,6 +191,8 @@ elif [[ $TASK == "bdist" ]]; then ...@@ -191,6 +191,8 @@ elif [[ $TASK == "bdist" ]]; then
PLATFORM="manylinux2014_$ARCH" PLATFORM="manylinux2014_$ARCH"
fi fi
sh ./build-python.sh bdist_wheel --integrated-opencl || exit 1 sh ./build-python.sh bdist_wheel --integrated-opencl || exit 1
# rename wheel, to fix scikit-build-core choosing the platform 'linux_aarch64' instead of
# a manylinux tag
mv \ mv \
./dist/*.whl \ ./dist/*.whl \
./dist/tmp.whl || exit 1 ./dist/tmp.whl || exit 1
......
...@@ -182,71 +182,71 @@ jobs: ...@@ -182,71 +182,71 @@ jobs:
inputs: inputs:
filePath: $(Build.SourcesDirectory)/.ci/test.sh filePath: $(Build.SourcesDirectory)/.ci/test.sh
targetType: 'filePath' targetType: 'filePath'
# ########################################### ###########################################
# - job: QEMU_multiarch - job: QEMU_multiarch
# ########################################### ###########################################
# variables: variables:
# BUILD_DIRECTORY: /LightGBM BUILD_DIRECTORY: /LightGBM
# COMPILER: gcc COMPILER: gcc
# PRODUCES_ARTIFACTS: 'true' PRODUCES_ARTIFACTS: 'true'
# pool: pool:
# vmImage: ubuntu-22.04 vmImage: ubuntu-22.04
# timeoutInMinutes: 180 timeoutInMinutes: 180
# strategy: strategy:
# matrix: matrix:
# bdist: bdist:
# TASK: bdist TASK: bdist
# ARCH: aarch64 ARCH: aarch64
# steps: steps:
# - script: | - script: |
# sudo apt-get update sudo apt-get update
# sudo apt-get install --no-install-recommends -y \ sudo apt-get install --no-install-recommends -y \
# binfmt-support \ binfmt-support \
# qemu \ qemu \
# qemu-user \ qemu-user \
# qemu-user-static qemu-user-static
# displayName: 'Install QEMU' displayName: 'Install QEMU'
# - script: | - script: |
# docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# displayName: 'Enable Docker multi-architecture support' displayName: 'Enable Docker multi-architecture support'
# - script: | - script: |
# git clean -d -f -x git clean -d -f -x
# displayName: 'Clean source directory' displayName: 'Clean source directory'
# - script: | - script: |
# cat > docker-script.sh <<EOF cat > docker-script.sh <<EOF
# export CONDA=\$HOME/miniforge export CONDA=\$HOME/miniforge
# export PATH=\$CONDA/bin:/opt/rh/llvm-toolset-7.0/root/usr/bin:\$PATH export PATH=\$CONDA/bin:/opt/rh/llvm-toolset-7.0/root/usr/bin:\$PATH
# export LD_LIBRARY_PATH=/opt/rh/llvm-toolset-7.0/root/usr/lib64:\$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/rh/llvm-toolset-7.0/root/usr/lib64:\$LD_LIBRARY_PATH
# \$BUILD_DIRECTORY/.ci/setup.sh || exit 1 \$BUILD_DIRECTORY/.ci/setup.sh || exit 1
# \$BUILD_DIRECTORY/.ci/test.sh || exit 1 \$BUILD_DIRECTORY/.ci/test.sh || exit 1
# EOF EOF
# IMAGE_URI="lightgbm/vsts-agent:manylinux2014_aarch64" IMAGE_URI="lightgbm/vsts-agent:manylinux2014_aarch64"
# docker pull "${IMAGE_URI}" || exit 1 docker pull "${IMAGE_URI}" || exit 1
# PLATFORM=$(docker inspect --format='{{.Os}}/{{.Architecture}}' "${IMAGE_URI}") || exit 1 PLATFORM=$(docker inspect --format='{{.Os}}/{{.Architecture}}' "${IMAGE_URI}") || exit 1
# echo "detected image platform: ${PLATFORM}" echo "detected image platform: ${PLATFORM}"
# docker run \ docker run \
# --platform "${PLATFORM}" \ --platform "${PLATFORM}" \
# --rm \ --rm \
# --env AZURE=true \ --env AZURE=true \
# --env BUILD_ARTIFACTSTAGINGDIRECTORY=$BUILD_ARTIFACTSTAGINGDIRECTORY \ --env BUILD_ARTIFACTSTAGINGDIRECTORY=$BUILD_ARTIFACTSTAGINGDIRECTORY \
# --env BUILD_DIRECTORY=$BUILD_DIRECTORY \ --env BUILD_DIRECTORY=$BUILD_DIRECTORY \
# --env COMPILER=$COMPILER \ --env COMPILER=$COMPILER \
# --env METHOD=$METHOD \ --env METHOD=$METHOD \
# --env OS_NAME=linux \ --env OS_NAME=linux \
# --env PRODUCES_ARTIFACTS=$PRODUCES_ARTIFACTS \ --env PRODUCES_ARTIFACTS=$PRODUCES_ARTIFACTS \
# --env PYTHON_VERSION=$PYTHON_VERSION \ --env PYTHON_VERSION=$PYTHON_VERSION \
# --env TASK=$TASK \ --env TASK=$TASK \
# -v "$(Build.SourcesDirectory)":"$BUILD_DIRECTORY" \ -v "$(Build.SourcesDirectory)":"$BUILD_DIRECTORY" \
# -v "$(Build.ArtifactStagingDirectory)":"$(Build.ArtifactStagingDirectory)" \ -v "$(Build.ArtifactStagingDirectory)":"$(Build.ArtifactStagingDirectory)" \
# "${IMAGE_URI}" \ "${IMAGE_URI}" \
# /bin/bash $BUILD_DIRECTORY/docker-script.sh /bin/bash $BUILD_DIRECTORY/docker-script.sh
# displayName: 'Setup and run tests' displayName: 'Setup and run tests'
# - task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
# condition: and(succeeded(), in(variables['TASK'], 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/'))) condition: and(succeeded(), in(variables['TASK'], 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
# inputs: inputs:
# pathtoPublish: '$(Build.ArtifactStagingDirectory)' pathtoPublish: '$(Build.ArtifactStagingDirectory)'
# artifactName: PackageAssets artifactName: PackageAssets
# artifactType: container artifactType: container
########################################### ###########################################
- job: macOS - job: macOS
########################################### ###########################################
...@@ -376,7 +376,7 @@ jobs: ...@@ -376,7 +376,7 @@ jobs:
dependsOn: dependsOn:
- Linux - Linux
- Linux_latest - Linux_latest
# - QEMU_multiarch - QEMU_multiarch
- macOS - macOS
- Windows - Windows
- R_artifact - R_artifact
......
...@@ -3,75 +3,8 @@ ...@@ -3,75 +3,8 @@
from typing import Any, List from typing import Any, List
"""pandas""" # scikit-learn is intentionally imported first here,
try: # see https://github.com/microsoft/LightGBM/issues/6509
from pandas import DataFrame as pd_DataFrame
from pandas import Series as pd_Series
from pandas import concat
try:
from pandas import CategoricalDtype as pd_CategoricalDtype
except ImportError:
from pandas.api.types import CategoricalDtype as pd_CategoricalDtype
PANDAS_INSTALLED = True
except ImportError:
PANDAS_INSTALLED = False
class pd_Series: # type: ignore
"""Dummy class for pandas.Series."""
def __init__(self, *args: Any, **kwargs: Any):
pass
class pd_DataFrame: # type: ignore
"""Dummy class for pandas.DataFrame."""
def __init__(self, *args: Any, **kwargs: Any):
pass
class pd_CategoricalDtype: # type: ignore
"""Dummy class for pandas.CategoricalDtype."""
def __init__(self, *args: Any, **kwargs: Any):
pass
concat = None
"""matplotlib"""
try:
import matplotlib # noqa: F401
MATPLOTLIB_INSTALLED = True
except ImportError:
MATPLOTLIB_INSTALLED = False
"""graphviz"""
try:
import graphviz # noqa: F401
GRAPHVIZ_INSTALLED = True
except ImportError:
GRAPHVIZ_INSTALLED = False
"""datatable"""
try:
import datatable
if hasattr(datatable, "Frame"):
dt_DataTable = datatable.Frame
else:
dt_DataTable = datatable.DataTable
DATATABLE_INSTALLED = True
except ImportError:
DATATABLE_INSTALLED = False
class dt_DataTable: # type: ignore
"""Dummy class for datatable.DataTable."""
def __init__(self, *args: Any, **kwargs: Any):
pass
"""sklearn""" """sklearn"""
try: try:
from sklearn.base import BaseEstimator, ClassifierMixin, RegressorMixin from sklearn.base import BaseEstimator, ClassifierMixin, RegressorMixin
...@@ -141,6 +74,75 @@ except ImportError: ...@@ -141,6 +74,75 @@ except ImportError:
_LGBMCheckClassificationTargets = None _LGBMCheckClassificationTargets = None
_LGBMComputeSampleWeight = None _LGBMComputeSampleWeight = None
"""pandas"""
try:
from pandas import DataFrame as pd_DataFrame
from pandas import Series as pd_Series
from pandas import concat
try:
from pandas import CategoricalDtype as pd_CategoricalDtype
except ImportError:
from pandas.api.types import CategoricalDtype as pd_CategoricalDtype
PANDAS_INSTALLED = True
except ImportError:
PANDAS_INSTALLED = False
class pd_Series: # type: ignore
"""Dummy class for pandas.Series."""
def __init__(self, *args: Any, **kwargs: Any):
pass
class pd_DataFrame: # type: ignore
"""Dummy class for pandas.DataFrame."""
def __init__(self, *args: Any, **kwargs: Any):
pass
class pd_CategoricalDtype: # type: ignore
"""Dummy class for pandas.CategoricalDtype."""
def __init__(self, *args: Any, **kwargs: Any):
pass
concat = None
"""matplotlib"""
try:
import matplotlib # noqa: F401
MATPLOTLIB_INSTALLED = True
except ImportError:
MATPLOTLIB_INSTALLED = False
"""graphviz"""
try:
import graphviz # noqa: F401
GRAPHVIZ_INSTALLED = True
except ImportError:
GRAPHVIZ_INSTALLED = False
"""datatable"""
try:
import datatable
if hasattr(datatable, "Frame"):
dt_DataTable = datatable.Frame
else:
dt_DataTable = datatable.DataTable
DATATABLE_INSTALLED = True
except ImportError:
DATATABLE_INSTALLED = False
class dt_DataTable: # type: ignore
"""Dummy class for datatable.DataTable."""
def __init__(self, *args: Any, **kwargs: Any):
pass
"""dask""" """dask"""
try: try:
from dask import delayed from dask import delayed
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment