This commit is contained in:
James Lamb 2020-11-12 20:54:01 -06:00
Родитель e397ca3f24
Коммит fabaf9a92b
4 изменённых файлов: 308 добавлений и 308 удалений

Просмотреть файл

@ -1,43 +1,43 @@
version: 3.0.0.99.{build}
# version: 3.0.0.99.{build}
image: Visual Studio 2015
platform: x64
configuration: # a trick to construct a build matrix with multiple Python versions
- 3.7
# image: Visual Studio 2015
# platform: x64
# configuration: # a trick to construct a build matrix with multiple Python versions
# - 3.7
# only build pull requests and
# commits to 'master'
branches:
only:
- master
# # only build pull requests and
# # commits to 'master'
# branches:
# only:
# - master
environment:
matrix:
- COMPILER: MSVC
TASK: python
- COMPILER: MINGW
TASK: python
# environment:
# matrix:
# - COMPILER: MSVC
# TASK: python
# - COMPILER: MINGW
# TASK: python
clone_depth: 5
# clone_depth: 5
install:
- git submodule update --init --recursive # get `compute` folder
- set PATH=%PATH:C:\Program Files\Git\usr\bin;=% # delete sh.exe from PATH (mingw32-make fix)
- set PATH=C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;%PATH%
- set PYTHON_VERSION=%CONFIGURATION%
- set CONDA_ENV="test-env"
- ps: >-
switch ($env:PYTHON_VERSION) {
"2.7" {$env:MINICONDA = "C:\Miniconda-x64"}
"3.6" {$env:MINICONDA = "C:\Miniconda36-x64"}
"3.7" {$env:MINICONDA = "C:\Miniconda37-x64"}
default {$env:MINICONDA = "C:\Miniconda37-x64"}
}
$env:PATH="$env:MINICONDA;$env:MINICONDA\Scripts;$env:PATH"
- ps: $env:LGB_VER = (Get-Content $env:APPVEYOR_BUILD_FOLDER\VERSION.txt).trim()
# install:
# - git submodule update --init --recursive # get `compute` folder
# - set PATH=%PATH:C:\Program Files\Git\usr\bin;=% # delete sh.exe from PATH (mingw32-make fix)
# - set PATH=C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;%PATH%
# - set PYTHON_VERSION=%CONFIGURATION%
# - set CONDA_ENV="test-env"
# - ps: >-
# switch ($env:PYTHON_VERSION) {
# "2.7" {$env:MINICONDA = "C:\Miniconda-x64"}
# "3.6" {$env:MINICONDA = "C:\Miniconda36-x64"}
# "3.7" {$env:MINICONDA = "C:\Miniconda37-x64"}
# default {$env:MINICONDA = "C:\Miniconda37-x64"}
# }
# $env:PATH="$env:MINICONDA;$env:MINICONDA\Scripts;$env:PATH"
# - ps: $env:LGB_VER = (Get-Content $env:APPVEYOR_BUILD_FOLDER\VERSION.txt).trim()
build: false
# build: false
test_script:
- conda init powershell
- powershell.exe -ExecutionPolicy Bypass -File %APPVEYOR_BUILD_FOLDER%\.ci\test_windows.ps1
# test_script:
# - conda init powershell
# - powershell.exe -ExecutionPolicy Bypass -File %APPVEYOR_BUILD_FOLDER%\.ci\test_windows.ps1

58
.github/workflows/r_package.yml поставляемый
Просмотреть файл

@ -159,35 +159,35 @@ jobs:
$env:TASK = "${{ matrix.task }}"
conda init powershell
& "$env:GITHUB_WORKSPACE/.ci/test_windows.ps1"
test-r-sanitizers:
name: r-package (ubuntu-latest, R-devel, GCC ASAN/UBSAN)
timeout-minutes: 60
runs-on: ubuntu-latest
container: rhub/rocker-gcc-san
steps:
- name: Install Git before checkout
shell: bash
run: |
apt-get update
apt-get install --no-install-recommends -y git
- name: Checkout repository
uses: actions/checkout@v2.3.4
with:
fetch-depth: 5
submodules: true
- name: Install packages
shell: bash
run: |
Rscript -e "install.packages(c('R6', 'data.table', 'jsonlite', 'testthat'), repos = 'https://cran.r-project.org')"
sh build-cran-package.sh
Rdevel CMD INSTALL lightgbm_*.tar.gz || exit -1
- name: Run tests with sanitizers
shell: bash
run: |
cd R-package/tests
Rscriptdevel testthat.R 2>&1 > ubsan-tests.log
cat ubsan-tests.log
exit $(cat ubsan-tests.log | grep --count "runtime error")
# test-r-sanitizers:
# name: r-package (ubuntu-latest, R-devel, GCC ASAN/UBSAN)
# timeout-minutes: 60
# runs-on: ubuntu-latest
# container: rhub/rocker-gcc-san
# steps:
# - name: Install Git before checkout
# shell: bash
# run: |
# apt-get update
# apt-get install --no-install-recommends -y git
# - name: Checkout repository
# uses: actions/checkout@v2.3.4
# with:
# fetch-depth: 5
# submodules: true
# - name: Install packages
# shell: bash
# run: |
# Rscript -e "install.packages(c('R6', 'data.table', 'jsonlite', 'testthat'), repos = 'https://cran.r-project.org')"
# sh build-cran-package.sh
# Rdevel CMD INSTALL lightgbm_*.tar.gz || exit -1
# - name: Run tests with sanitizers
# shell: bash
# run: |
# cd R-package/tests
# Rscriptdevel testthat.R 2>&1 > ubsan-tests.log
# cat ubsan-tests.log
# exit $(cat ubsan-tests.log | grep --count "runtime error")
all-successful:
# https://github.community/t/is-it-possible-to-require-all-github-actions-tasks-to-pass-without-enumerating-them/117957/4?u=graingert
runs-on: ubuntu-latest

Просмотреть файл

@ -1,68 +1,68 @@
if: branch = master
# if: branch = master
language: cpp
# language: cpp
git:
submodules: true
depth: 5
# git:
# submodules: true
# depth: 5
os:
- linux
- osx
dist: focal
osx_image: xcode12.2
# os:
# - linux
# - osx
# dist: focal
# osx_image: xcode12.2
env:
global: # default values
- PYTHON_VERSION=3.8
matrix:
- TASK=regular PYTHON_VERSION=3.6
- TASK=sdist PYTHON_VERSION=2.7
- TASK=bdist
- TASK=if-else
- TASK=lint
- TASK=check-docs
- TASK=mpi METHOD=source
- TASK=mpi METHOD=pip PYTHON_VERSION=3.7
- TASK=gpu METHOD=source
- TASK=gpu METHOD=pip PYTHON_VERSION=3.6
# env:
# global: # default values
# - PYTHON_VERSION=3.8
# matrix:
# - TASK=regular PYTHON_VERSION=3.6
# - TASK=sdist PYTHON_VERSION=2.7
# - TASK=bdist
# - TASK=if-else
# - TASK=lint
# - TASK=check-docs
# - TASK=mpi METHOD=source
# - TASK=mpi METHOD=pip PYTHON_VERSION=3.7
# - TASK=gpu METHOD=source
# - TASK=gpu METHOD=pip PYTHON_VERSION=3.6
matrix:
exclude:
- os: osx
env: TASK=gpu METHOD=source
- os: osx
env: TASK=gpu METHOD=pip PYTHON_VERSION=3.6
- os: osx
env: TASK=lint
- os: osx
env: TASK=check-docs
# matrix:
# exclude:
# - os: osx
# env: TASK=gpu METHOD=source
# - os: osx
# env: TASK=gpu METHOD=pip PYTHON_VERSION=3.6
# - os: osx
# env: TASK=lint
# - os: osx
# env: TASK=check-docs
before_install:
- test -n $CC && unset CC
- test -n $CXX && unset CXX
- export BUILD_DIRECTORY="$TRAVIS_BUILD_DIR"
- if [[ $TRAVIS_OS_NAME == "osx" ]]; then
export OS_NAME="macos";
export COMPILER="gcc";
else
export OS_NAME="linux";
export COMPILER="clang";
fi
- export CONDA="$HOME/miniconda"
- export PATH="$CONDA/bin:$PATH"
- export CONDA_ENV="test-env"
- export LGB_VER=$(head -n 1 VERSION.txt)
- export AMDAPPSDK_PATH=$HOME/AMDAPPSDK
- export LD_LIBRARY_PATH="$AMDAPPSDK_PATH/lib/x86_64:$LD_LIBRARY_PATH"
- export LD_LIBRARY_PATH="/usr/local/clang/lib:$LD_LIBRARY_PATH" # fix error "libomp.so: cannot open shared object file: No such file or directory" on Linux with Clang
- export OPENCL_VENDOR_PATH=$AMDAPPSDK_PATH/etc/OpenCL/vendors
# before_install:
# - test -n $CC && unset CC
# - test -n $CXX && unset CXX
# - export BUILD_DIRECTORY="$TRAVIS_BUILD_DIR"
# - if [[ $TRAVIS_OS_NAME == "osx" ]]; then
# export OS_NAME="macos";
# export COMPILER="gcc";
# else
# export OS_NAME="linux";
# export COMPILER="clang";
# fi
# - export CONDA="$HOME/miniconda"
# - export PATH="$CONDA/bin:$PATH"
# - export CONDA_ENV="test-env"
# - export LGB_VER=$(head -n 1 VERSION.txt)
# - export AMDAPPSDK_PATH=$HOME/AMDAPPSDK
# - export LD_LIBRARY_PATH="$AMDAPPSDK_PATH/lib/x86_64:$LD_LIBRARY_PATH"
# - export LD_LIBRARY_PATH="/usr/local/clang/lib:$LD_LIBRARY_PATH" # fix error "libomp.so: cannot open shared object file: No such file or directory" on Linux with Clang
# - export OPENCL_VENDOR_PATH=$AMDAPPSDK_PATH/etc/OpenCL/vendors
install:
- bash .ci/setup.sh
# install:
# - bash .ci/setup.sh
script:
- bash .ci/test.sh
# script:
# - bash .ci/test.sh
notifications:
email: false
# notifications:
# email: false

Просмотреть файл

@ -1,185 +1,185 @@
trigger:
branches:
include:
- master
tags:
include:
- v*
pr:
- master
variables:
PYTHON_VERSION: 3.8
CONDA_ENV: test-env
resources:
containers:
- container: ubuntu1404
image: lightgbm/vsts-agent:ubuntu-14.04
jobs:
###########################################
- job: Linux
###########################################
variables:
COMPILER: gcc
pool:
vmImage: 'ubuntu-latest'
container: ubuntu1404
strategy:
maxParallel: 6
matrix:
regular:
TASK: regular
sdist:
TASK: sdist
bdist:
TASK: bdist
PYTHON_VERSION: 3.7
inference:
TASK: if-else
mpi_source:
TASK: mpi
METHOD: source
gpu_source:
TASK: gpu
METHOD: source
PYTHON_VERSION: 3.6
steps:
- script: |
echo "##vso[task.setvariable variable=BUILD_DIRECTORY]$BUILD_SOURCESDIRECTORY"
echo "##vso[task.setvariable variable=OS_NAME]linux"
echo "##vso[task.setvariable variable=AZURE]true"
echo "##vso[task.setvariable variable=LGB_VER]$(head -n 1 VERSION.txt)"
echo "##vso[task.prependpath]$CONDA/bin"
AMDAPPSDK_PATH=$BUILD_SOURCESDIRECTORY/AMDAPPSDK
echo "##vso[task.setvariable variable=AMDAPPSDK_PATH]$AMDAPPSDK_PATH"
LD_LIBRARY_PATH=$AMDAPPSDK_PATH/lib/x86_64:$LD_LIBRARY_PATH
echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$LD_LIBRARY_PATH"
echo "##vso[task.setvariable variable=OPENCL_VENDOR_PATH]$AMDAPPSDK_PATH/etc/OpenCL/vendors"
displayName: 'Set variables'
- bash: $(Build.SourcesDirectory)/.ci/setup.sh
displayName: Setup
- bash: $(Build.SourcesDirectory)/.ci/test.sh
displayName: Test
- task: PublishBuildArtifacts@1
condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: PackageAssets
artifactType: container
###########################################
- job: MacOS
###########################################
variables:
COMPILER: clang
pool:
vmImage: 'macOS-10.14'
strategy:
maxParallel: 3
matrix:
regular:
TASK: regular
PYTHON_VERSION: 3.7
sdist:
TASK: sdist
bdist:
TASK: bdist
steps:
- script: |
echo "##vso[task.setvariable variable=BUILD_DIRECTORY]$BUILD_SOURCESDIRECTORY"
echo "##vso[task.setvariable variable=OS_NAME]macos"
echo "##vso[task.setvariable variable=AZURE]true"
echo "##vso[task.setvariable variable=LGB_VER]$(head -n 1 VERSION.txt)"
CONDA=$AGENT_HOMEDIRECTORY/miniconda
echo "##vso[task.setvariable variable=CONDA]$CONDA"
echo "##vso[task.prependpath]$CONDA/bin"
echo "##vso[task.prependpath]$(brew --prefix swig@3)/bin"
echo "##vso[task.setvariable variable=JAVA_HOME]$JAVA_HOME_8_X64"
displayName: 'Set variables'
- bash: $(Build.SourcesDirectory)/.ci/setup.sh
displayName: Setup
- bash: $(Build.SourcesDirectory)/.ci/test.sh
displayName: Test
- task: PublishBuildArtifacts@1
condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: PackageAssets
artifactType: container
###########################################
- job: Windows
###########################################
pool:
vmImage: 'vs2017-win2016'
strategy:
maxParallel: 3
matrix:
regular:
TASK: regular
PYTHON_VERSION: 3.6
sdist:
TASK: sdist
PYTHON_VERSION: 2.7
bdist:
TASK: bdist
steps:
- powershell: |
Write-Host "##vso[task.prependpath]$env:CONDA\Scripts"
Write-Host "##vso[task.setvariable variable=AZURE]true"
displayName: 'Set Variables'
- script: |
cmd /c "conda init powershell"
cmd /c "powershell -ExecutionPolicy Bypass -File %BUILD_SOURCESDIRECTORY%/.ci/test_windows.ps1"
displayName: Test
- task: PublishBuildArtifacts@1
condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: PackageAssets
artifactType: container
# trigger:
# branches:
# include:
# - master
# tags:
# include:
# - v*
# pr:
# - master
# variables:
# PYTHON_VERSION: 3.8
# CONDA_ENV: test-env
# resources:
# containers:
# - container: ubuntu1404
# image: lightgbm/vsts-agent:ubuntu-14.04
# jobs:
# ###########################################
# - job: Linux
# ###########################################
# variables:
# COMPILER: gcc
# pool:
# vmImage: 'ubuntu-latest'
# container: ubuntu1404
# strategy:
# maxParallel: 6
# matrix:
# regular:
# TASK: regular
# sdist:
# TASK: sdist
# bdist:
# TASK: bdist
# PYTHON_VERSION: 3.7
# inference:
# TASK: if-else
# mpi_source:
# TASK: mpi
# METHOD: source
# gpu_source:
# TASK: gpu
# METHOD: source
# PYTHON_VERSION: 3.6
# steps:
# - script: |
# echo "##vso[task.setvariable variable=BUILD_DIRECTORY]$BUILD_SOURCESDIRECTORY"
# echo "##vso[task.setvariable variable=OS_NAME]linux"
# echo "##vso[task.setvariable variable=AZURE]true"
# echo "##vso[task.setvariable variable=LGB_VER]$(head -n 1 VERSION.txt)"
# echo "##vso[task.prependpath]$CONDA/bin"
# AMDAPPSDK_PATH=$BUILD_SOURCESDIRECTORY/AMDAPPSDK
# echo "##vso[task.setvariable variable=AMDAPPSDK_PATH]$AMDAPPSDK_PATH"
# LD_LIBRARY_PATH=$AMDAPPSDK_PATH/lib/x86_64:$LD_LIBRARY_PATH
# echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$LD_LIBRARY_PATH"
# echo "##vso[task.setvariable variable=OPENCL_VENDOR_PATH]$AMDAPPSDK_PATH/etc/OpenCL/vendors"
# displayName: 'Set variables'
# - bash: $(Build.SourcesDirectory)/.ci/setup.sh
# displayName: Setup
# - bash: $(Build.SourcesDirectory)/.ci/test.sh
# displayName: Test
# - task: PublishBuildArtifacts@1
# condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
# inputs:
# pathtoPublish: '$(Build.ArtifactStagingDirectory)'
# artifactName: PackageAssets
# artifactType: container
# ###########################################
# - job: MacOS
# ###########################################
# variables:
# COMPILER: clang
# pool:
# vmImage: 'macOS-10.14'
# strategy:
# maxParallel: 3
# matrix:
# regular:
# TASK: regular
# PYTHON_VERSION: 3.7
# sdist:
# TASK: sdist
# bdist:
# TASK: bdist
# steps:
# - script: |
# echo "##vso[task.setvariable variable=BUILD_DIRECTORY]$BUILD_SOURCESDIRECTORY"
# echo "##vso[task.setvariable variable=OS_NAME]macos"
# echo "##vso[task.setvariable variable=AZURE]true"
# echo "##vso[task.setvariable variable=LGB_VER]$(head -n 1 VERSION.txt)"
# CONDA=$AGENT_HOMEDIRECTORY/miniconda
# echo "##vso[task.setvariable variable=CONDA]$CONDA"
# echo "##vso[task.prependpath]$CONDA/bin"
# echo "##vso[task.prependpath]$(brew --prefix swig@3)/bin"
# echo "##vso[task.setvariable variable=JAVA_HOME]$JAVA_HOME_8_X64"
# displayName: 'Set variables'
# - bash: $(Build.SourcesDirectory)/.ci/setup.sh
# displayName: Setup
# - bash: $(Build.SourcesDirectory)/.ci/test.sh
# displayName: Test
# - task: PublishBuildArtifacts@1
# condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
# inputs:
# pathtoPublish: '$(Build.ArtifactStagingDirectory)'
# artifactName: PackageAssets
# artifactType: container
# ###########################################
# - job: Windows
# ###########################################
# pool:
# vmImage: 'vs2017-win2016'
# strategy:
# maxParallel: 3
# matrix:
# regular:
# TASK: regular
# PYTHON_VERSION: 3.6
# sdist:
# TASK: sdist
# PYTHON_VERSION: 2.7
# bdist:
# TASK: bdist
# steps:
# - powershell: |
# Write-Host "##vso[task.prependpath]$env:CONDA\Scripts"
# Write-Host "##vso[task.setvariable variable=AZURE]true"
# displayName: 'Set Variables'
# - script: |
# cmd /c "conda init powershell"
# cmd /c "powershell -ExecutionPolicy Bypass -File %BUILD_SOURCESDIRECTORY%/.ci/test_windows.ps1"
# displayName: Test
# - task: PublishBuildArtifacts@1
# condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
# inputs:
# pathtoPublish: '$(Build.ArtifactStagingDirectory)'
# artifactName: PackageAssets
# artifactType: container
###########################################
- job: Package
###########################################
dependsOn:
- Linux
- MacOS
- Windows
condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
pool:
vmImage: 'vs2017-win2016'
steps:
# Download all agent packages from all previous phases
- task: DownloadBuildArtifacts@0
displayName: Download package assets
inputs:
artifactName: PackageAssets
downloadPath: $(Build.SourcesDirectory)/binaries
- script: |
python %BUILD_SOURCESDIRECTORY%/.nuget/create_nuget.py %BUILD_SOURCESDIRECTORY%/binaries/PackageAssets
displayName: 'Create NuGet configuration files'
- task: NuGetCommand@2
inputs:
command: pack
packagesToPack: '$(Build.SourcesDirectory)/.nuget/*.nuspec'
packDestination: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: NuGet
artifactType: container
- task: GitHubRelease@0
displayName: 'Create GitHub Release'
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v'))
inputs:
gitHubConnection: guolinke
repositoryName: '$(Build.Repository.Name)'
action: 'create'
target: '$(Build.SourceVersion)'
tagSource: 'auto'
title: '$(Build.SourceBranchName)'
assets: |
$(Build.SourcesDirectory)/binaries/PackageAssets/*
$(Build.ArtifactStagingDirectory)/*.nupkg
assetUploadMode: 'delete'
isDraft: true
isPreRelease: false
addChangeLog: false
# ###########################################
# - job: Package
# ###########################################
# dependsOn:
# - Linux
# - MacOS
# - Windows
# condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
# pool:
# vmImage: 'vs2017-win2016'
# steps:
# # Download all agent packages from all previous phases
# - task: DownloadBuildArtifacts@0
# displayName: Download package assets
# inputs:
# artifactName: PackageAssets
# downloadPath: $(Build.SourcesDirectory)/binaries
# - script: |
# python %BUILD_SOURCESDIRECTORY%/.nuget/create_nuget.py %BUILD_SOURCESDIRECTORY%/binaries/PackageAssets
# displayName: 'Create NuGet configuration files'
# - task: NuGetCommand@2
# inputs:
# command: pack
# packagesToPack: '$(Build.SourcesDirectory)/.nuget/*.nuspec'
# packDestination: '$(Build.ArtifactStagingDirectory)'
# - task: PublishBuildArtifacts@1
# inputs:
# pathtoPublish: '$(Build.ArtifactStagingDirectory)'
# artifactName: NuGet
# artifactType: container
# - task: GitHubRelease@0
# displayName: 'Create GitHub Release'
# condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v'))
# inputs:
# gitHubConnection: guolinke
# repositoryName: '$(Build.Repository.Name)'
# action: 'create'
# target: '$(Build.SourceVersion)'
# tagSource: 'auto'
# title: '$(Build.SourceBranchName)'
# assets: |
# $(Build.SourcesDirectory)/binaries/PackageAssets/*
# $(Build.ArtifactStagingDirectory)/*.nupkg
# assetUploadMode: 'delete'
# isDraft: true
# isPreRelease: false
# addChangeLog: false