@@ -66,30 +66,22 @@ if [[ $TASK == "swig" ]]; then
66
66
fi
67
67
68
68
if [[ $TASK == " lint" ]]; then
69
+ cd ${BUILD_DIRECTORY}
69
70
conda create -q -y -n $CONDA_ENV \
70
71
${CONDA_PYTHON_REQUIREMENT} \
71
72
cmakelint \
72
73
cpplint \
73
- flake8 \
74
74
isort \
75
75
mypy \
76
- pydocstyle \
77
- " r-lintr>=3.0 "
76
+ ' r-lintr>=3.0 ' \
77
+ ruff
78
78
source activate $CONDA_ENV
79
79
echo " Linting Python code"
80
- flake8 \
81
- --ignore=E501,W503 \
82
- --exclude=./.nuget,./external_libs,./python-package/build \
83
- . || exit -1
84
- pydocstyle --convention=numpy --add-ignore=D105 --match-dir=" ^(?!^external_libs|test|example).*" --match=" (?!^test_|setup).*\.py" . || exit -1
85
- isort . --check-only || exit -1
86
- mypy --ignore-missing-imports python-package/ || true
80
+ sh ${BUILD_DIRECTORY} /.ci/lint-python.sh || exit -1
87
81
echo " Linting R code"
88
82
Rscript ${BUILD_DIRECTORY} /.ci/lint_r_code.R ${BUILD_DIRECTORY} || exit -1
89
83
echo " Linting C++ code"
90
- cpplint --filter=-build/c++11,-build/include_subdir,-build/header_guard,-whitespace/line_length --recursive ./src ./include ./R-package ./swig ./tests || exit -1
91
- cmake_files=$( find . -name CMakeLists.txt -o -path " */cmake/*.cmake" )
92
- cmakelint --linelength=120 --filter=-convention/filename,-package/stdargs,-readability/wonkycase ${cmake_files} || exit -1
84
+ sh ${BUILD_DIRECTORY} /.ci/lint-cpp.sh || exit -1
93
85
exit 0
94
86
fi
95
87
@@ -153,21 +145,23 @@ if [[ $OS_NAME == "macos" ]] && [[ $COMPILER == "clang" ]]; then
153
145
fi
154
146
155
147
if [[ $TASK == " sdist" ]]; then
156
- cd $BUILD_DIRECTORY /python-package && python setup.py sdist || exit -1
157
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/ dist || exit -1
158
- pip install --user $BUILD_DIRECTORY /python-package/ dist/lightgbm-$LGB_VER .tar.gz -v || exit -1
148
+ cd $BUILD_DIRECTORY && sh ./build-python.sh sdist || exit -1
149
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
150
+ pip install --user $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER .tar.gz -v || exit -1
159
151
if [[ $PRODUCES_ARTIFACTS == " true" ]]; then
160
- cp $BUILD_DIRECTORY /python-package/ dist/lightgbm-$LGB_VER .tar.gz $BUILD_ARTIFACTSTAGINGDIRECTORY
152
+ cp $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER .tar.gz $BUILD_ARTIFACTSTAGINGDIRECTORY || exit -1
161
153
fi
162
154
pytest $BUILD_DIRECTORY /tests/python_package_test || exit -1
163
155
exit 0
164
156
elif [[ $TASK == " bdist" ]]; then
165
157
if [[ $OS_NAME == " macos" ]]; then
166
- cd $BUILD_DIRECTORY /python-package && python setup.py bdist_wheel --plat-name=macosx --python-tag py3 || exit -1
167
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/dist || exit -1
168
- mv dist/lightgbm-$LGB_VER -py3-none-macosx.whl dist/lightgbm-$LGB_VER -py3-none-macosx_10_15_x86_64.macosx_11_6_x86_64.macosx_12_5_x86_64.whl
158
+ cd $BUILD_DIRECTORY && sh ./build-python.sh bdist_wheel || exit -1
159
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
160
+ mv \
161
+ ./dist/* .whl \
162
+ dist/lightgbm-$LGB_VER -py3-none-macosx_10_15_x86_64.macosx_11_6_x86_64.macosx_12_5_x86_64.whl || exit -1
169
163
if [[ $PRODUCES_ARTIFACTS == " true" ]]; then
170
- cp dist/lightgbm-$LGB_VER -py3-none-macosx* .whl $BUILD_ARTIFACTSTAGINGDIRECTORY
164
+ cp dist/lightgbm-$LGB_VER -py3-none-macosx* .whl $BUILD_ARTIFACTSTAGINGDIRECTORY || exit -1
171
165
fi
172
166
else
173
167
ARCH=$( uname -m)
@@ -176,37 +170,51 @@ elif [[ $TASK == "bdist" ]]; then
176
170
else
177
171
PLATFORM=" manylinux2014_$ARCH "
178
172
fi
179
- cd $BUILD_DIRECTORY /python-package && python setup.py bdist_wheel --integrated-opencl --plat-name=$PLATFORM --python-tag py3 || exit -1
180
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/dist || exit -1
173
+ cd $BUILD_DIRECTORY && sh ./build-python.sh bdist_wheel --integrated-opencl || exit -1
174
+ mv \
175
+ ./dist/* .whl \
176
+ ./dist/lightgbm-$LGB_VER -py3-none-$PLATFORM .whl || exit -1
177
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
181
178
if [[ $PRODUCES_ARTIFACTS == " true" ]]; then
182
- cp dist/lightgbm-$LGB_VER -py3-none-$PLATFORM .whl $BUILD_ARTIFACTSTAGINGDIRECTORY
179
+ cp dist/lightgbm-$LGB_VER -py3-none-$PLATFORM .whl $BUILD_ARTIFACTSTAGINGDIRECTORY || exit -1
183
180
fi
184
181
# Make sure we can do both CPU and GPU; see tests/python_package_test/test_dual.py
185
182
export LIGHTGBM_TEST_DUAL_CPU_GPU=1
186
183
fi
187
- pip install --user $BUILD_DIRECTORY /python-package/ dist/* .whl || exit -1
184
+ pip install --user $BUILD_DIRECTORY /dist/* .whl || exit -1
188
185
pytest $BUILD_DIRECTORY /tests || exit -1
189
186
exit 0
190
187
fi
191
188
192
- mkdir $BUILD_DIRECTORY /build && cd $BUILD_DIRECTORY /build
189
+ # temporarily pin pip to versions that support 'pip install --install-option'
190
+ # ref: https://github.com/microsoft/LightGBM/issues/5061#issuecomment-1510642287
191
+ if [[ $METHOD == " pip" ]]; then
192
+ pip install ' pip<23.1'
193
+ fi
193
194
194
195
if [[ $TASK == " gpu" ]]; then
195
196
sed -i' .bak' ' s/std::string device_type = "cpu";/std::string device_type = "gpu";/' $BUILD_DIRECTORY /include/LightGBM/config.h
196
197
grep -q ' std::string device_type = "gpu"' $BUILD_DIRECTORY /include/LightGBM/config.h || exit -1 # make sure that changes were really done
197
198
if [[ $METHOD == " pip" ]]; then
198
- cd $BUILD_DIRECTORY /python-package && python setup.py sdist || exit -1
199
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/dist || exit -1
200
- pip install --user $BUILD_DIRECTORY /python-package/dist/lightgbm-$LGB_VER .tar.gz -v --install-option=--gpu || exit -1
199
+ cd $BUILD_DIRECTORY && sh ./build-python.sh sdist || exit -1
200
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
201
+ pip install \
202
+ --user \
203
+ -v \
204
+ --install-option=--gpu \
205
+ $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER .tar.gz \
206
+ || exit -1
201
207
pytest $BUILD_DIRECTORY /tests/python_package_test || exit -1
202
208
exit 0
203
209
elif [[ $METHOD == " wheel" ]]; then
204
- cd $BUILD_DIRECTORY /python-package && python setup.py bdist_wheel --gpu || exit -1
205
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/ dist || exit -1
206
- pip install --user $BUILD_DIRECTORY /python-package/ dist/lightgbm-$LGB_VER * .whl -v || exit -1
210
+ cd $BUILD_DIRECTORY && sh ./build-python.sh bdist_wheel --gpu || exit -1
211
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
212
+ pip install --user $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER * .whl -v || exit -1
207
213
pytest $BUILD_DIRECTORY /tests || exit -1
208
214
exit 0
209
215
elif [[ $METHOD == " source" ]]; then
216
+ mkdir $BUILD_DIRECTORY /build
217
+ cd $BUILD_DIRECTORY /build
210
218
cmake -DUSE_GPU=ON ..
211
219
fi
212
220
elif [[ $TASK == " cuda" ]]; then
@@ -216,43 +224,59 @@ elif [[ $TASK == "cuda" ]]; then
216
224
sed -i' .bak' ' s/gpu_use_dp = false;/gpu_use_dp = true;/' $BUILD_DIRECTORY /include/LightGBM/config.h
217
225
grep -q ' gpu_use_dp = true' $BUILD_DIRECTORY /include/LightGBM/config.h || exit -1 # make sure that changes were really done
218
226
if [[ $METHOD == " pip" ]]; then
219
- cd $BUILD_DIRECTORY /python-package && python setup.py sdist || exit -1
220
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/dist || exit -1
221
- pip install --user $BUILD_DIRECTORY /python-package/dist/lightgbm-$LGB_VER .tar.gz -v --install-option=--cuda || exit -1
227
+ cd $BUILD_DIRECTORY && sh ./build-python.sh sdist || exit -1
228
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
229
+ pip install \
230
+ --user \
231
+ -v \
232
+ --install-option=--cuda \
233
+ $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER .tar.gz \
234
+ || exit -1
222
235
pytest $BUILD_DIRECTORY /tests/python_package_test || exit -1
223
236
exit 0
224
237
elif [[ $METHOD == " wheel" ]]; then
225
- cd $BUILD_DIRECTORY /python-package && python setup.py bdist_wheel --cuda || exit -1
226
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/ dist || exit -1
227
- pip install --user $BUILD_DIRECTORY /python-package/ dist/lightgbm-$LGB_VER * .whl -v || exit -1
238
+ cd $BUILD_DIRECTORY && sh ./build-python.sh bdist_wheel --cuda || exit -1
239
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
240
+ pip install --user $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER * .whl -v || exit -1
228
241
pytest $BUILD_DIRECTORY /tests || exit -1
229
242
exit 0
230
243
elif [[ $METHOD == " source" ]]; then
244
+ mkdir $BUILD_DIRECTORY /build
245
+ cd $BUILD_DIRECTORY /build
231
246
cmake -DUSE_CUDA=ON ..
232
247
fi
233
248
elif [[ $TASK == " mpi" ]]; then
234
249
if [[ $METHOD == " pip" ]]; then
235
- cd $BUILD_DIRECTORY /python-package && python setup.py sdist || exit -1
236
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/dist || exit -1
237
- pip install --user $BUILD_DIRECTORY /python-package/dist/lightgbm-$LGB_VER .tar.gz -v --install-option=--mpi || exit -1
250
+ cd $BUILD_DIRECTORY && sh ./build-python.sh sdist || exit -1
251
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
252
+ pip install \
253
+ --user \
254
+ -v \
255
+ --install-option=--mpi \
256
+ $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER .tar.gz \
257
+ || exit -1
238
258
pytest $BUILD_DIRECTORY /tests/python_package_test || exit -1
239
259
exit 0
240
260
elif [[ $METHOD == " wheel" ]]; then
241
- cd $BUILD_DIRECTORY /python-package && python setup.py bdist_wheel --mpi || exit -1
242
- sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /python-package/ dist || exit -1
243
- pip install --user $BUILD_DIRECTORY /python-package/ dist/lightgbm-$LGB_VER * .whl -v || exit -1
261
+ cd $BUILD_DIRECTORY && sh ./build-python.sh bdist_wheel --mpi || exit -1
262
+ sh $BUILD_DIRECTORY /.ci/check_python_dists.sh $BUILD_DIRECTORY /dist || exit -1
263
+ pip install --user $BUILD_DIRECTORY /dist/lightgbm-$LGB_VER * .whl -v || exit -1
244
264
pytest $BUILD_DIRECTORY /tests || exit -1
245
265
exit 0
246
266
elif [[ $METHOD == " source" ]]; then
267
+ mkdir $BUILD_DIRECTORY /build
268
+ cd $BUILD_DIRECTORY /build
247
269
cmake -DUSE_MPI=ON -DUSE_DEBUG=ON ..
248
270
fi
249
271
else
272
+ mkdir $BUILD_DIRECTORY /build
273
+ cd $BUILD_DIRECTORY /build
250
274
cmake ..
251
275
fi
252
276
253
277
make _lightgbm -j4 || exit -1
254
278
255
- cd $BUILD_DIRECTORY /python-package && python setup.py install --precompile --user || exit -1
279
+ cd $BUILD_DIRECTORY && sh ./build-python.sh install --precompile --user || exit -1
256
280
pytest $BUILD_DIRECTORY /tests || exit -1
257
281
258
282
if [[ $TASK == " regular" ]]; then
0 commit comments