Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 15 additions & 1 deletion build.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ set BoostRoot=%DependenciesDir%BoostDbg3.7
set PythonVersion=3.7
set PythonTag=cp37
set RunTests=False
set RunExtendedTests=False
set BuildDotNetBridgeOnly=False
set SkipDotNetBridge=False

Expand All @@ -33,6 +34,10 @@ if /i [%1] == [--runTests] (
set RunTests=True
shift && goto :Arg_Loop
)
if /i [%1] == [--includeExtendedTests] (
set RunExtendedTests=True
shift && goto :Arg_Loop
)
if /i [%1] == [--buildDotNetBridgeOnly] (
set BuildDotNetBridgeOnly=True
shift && goto :Arg_Loop
Expand All @@ -43,11 +48,12 @@ if /i [%1] == [--skipDotNetBridge] (
) else goto :Usage

:Usage
echo "Usage: build.cmd [--configuration <Configuration>] [--runTests] [--buildDotNetBridgeOnly] [--skipDotNetBridge]"
echo "Usage: build.cmd [--configuration <Configuration>] [--runTests] [--includeExtendedTests] [--buildDotNetBridgeOnly] [--skipDotNetBridge]"
echo ""
echo "Options:"
echo " --configuration <Configuration> Build Configuration (DbgWinPy3.7,DbgWinPy3.6,DbgWinPy3.5,DbgWinPy2.7,RlsWinPy3.7,RlsWinPy3.6,RlsWinPy3.5,RlsWinPy2.7)"
echo " --runTests Run tests after build"
echo " --includeExtendedTests Include the extended tests if the tests are run"
echo " --buildDotNetBridgeOnly Build only DotNetBridge"
echo " --skipDotNetBridge Build everything except DotNetBridge"
goto :Exit_Success
Expand Down Expand Up @@ -326,6 +332,7 @@ call "%PythonExe%" -m pip install "scikit-learn==0.19.2"
set PackagePath=%PythonRoot%\Lib\site-packages\nimbusml
set TestsPath1=%PackagePath%\tests
set TestsPath2=%__currentScriptDir%src\python\tests
set TestsPath3=%__currentScriptDir%src\python\tests_extended
set ReportPath=%__currentScriptDir%build\TestCoverageReport
call "%PythonExe%" -m pytest --verbose --maxfail=1000 --capture=sys "%TestsPath1%" --cov="%PackagePath%" --cov-report term-missing --cov-report html:"%ReportPath%"
if errorlevel 1 (
Expand All @@ -336,6 +343,13 @@ if errorlevel 1 (
goto :Exit_Error
)

if "%RunExtendedTests%" == "True" (
call "%PythonExe%" -m pytest --verbose --maxfail=1000 --capture=sys "%TestsPath3%" --cov="%PackagePath%" --cov-report term-missing --cov-report html:"%ReportPath%"
if errorlevel 1 (
goto :Exit_Error
)
)

:Exit_Success
endlocal
exit /b %ERRORLEVEL%
Expand Down
13 changes: 12 additions & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ mkdir -p "${DependenciesDir}"

usage()
{
echo "Usage: $0 --configuration <Configuration> [--runTests]"
echo "Usage: $0 --configuration <Configuration> [--runTests] [--includeExtendedTests]"
echo ""
echo "Options:"
echo " --configuration <Configuration> Build Configuration (DbgLinPy3.7,DbgLinPy3.6,DbgLinPy3.5,DbgLinPy2.7,RlsLinPy3.7,RlsLinPy3.6,RlsLinPy3.5,RlsLinPy2.7,DbgMacPy3.7,DbgMacPy3.6,DbgMacPy3.5,DbgMacPy2.7,RlsMacPy3.7,RlsMacPy3.6,RlsMacPy3.5,RlsMacPy2.7)"
echo " --runTests Run tests after build"
echo " --runTestsOnly Run tests on a wheel file in default build location (<repo>/target/)"
echo " --includeExtendedTests Include the extended tests if the tests are run"
echo " --buildNativeBridgeOnly Build only the native bridge code"
echo " --skipNativeBridge Build the DotNet bridge and python wheel but use existing native bridge binaries (e.g. <repo>/x64/DbgLinPy3.7/pybridge.so)"
exit 1
Expand All @@ -30,6 +31,7 @@ else
__configuration=DbgLinPy3.7
fi
__runTests=false
__runExtendedTests=false
__buildNativeBridge=true
__buildDotNetBridge=true

Expand All @@ -47,6 +49,9 @@ while [ "$1" != "" ]; do
--runtests)
__runTests=true
;;
--includeextendedtests)
__runExtendedTests=true
;;
--runtestsonly)
__buildNativeBridge=false
__buildDotNetBridge=false
Expand Down Expand Up @@ -268,9 +273,15 @@ then
PackagePath=${PythonRoot}/lib/python${PythonVersion}/site-packages/nimbusml
TestsPath1=${PackagePath}/tests
TestsPath2=${__currentScriptDir}/src/python/tests
TestsPath3=${__currentScriptDir}/src/python/tests_extended
ReportPath=${__currentScriptDir}/build/TestCoverageReport
"${PythonExe}" -m pytest --verbose --maxfail=1000 --capture=sys "${TestsPath1}"
"${PythonExe}" -m pytest --verbose --maxfail=1000 --capture=sys "${TestsPath2}"

if [ ${__runExtendedTests} = true ]
then
"${PythonExe}" -m pytest --verbose --maxfail=1000 --capture=sys "${TestsPath3}"
fi
fi

exit $?
12 changes: 7 additions & 5 deletions build/ci/phase-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ parameters:
buildMatrix: {}
buildQueue: {}
testDistro: ''
testOptions: ''

phases:

Expand All @@ -12,6 +13,7 @@ phases:
_buildScript: ${{ parameters.buildScript }}
_dockerRun: docker run -e SYSTEM_TEAMFOUNDATIONCOLLECTIONURI="$(System.TeamFoundationCollectionUri)" -e BUILD_BUILDNUMBER="$(Build.BuildNumber)" -i -v $(Build.SourcesDirectory):/builddir -w="/builddir"
_distro: ${{ parameters.testDistro }}
_testOptions: ${{ parameters.testOptions }}
queue:
parallel: 99
matrix:
Expand All @@ -21,28 +23,28 @@ phases:

# Windows phases
- ${{ if eq(parameters.name, 'Windows') }}:
- script: $(_buildScript) --configuration $(_configuration) --runTests
- script: $(_buildScript) --configuration $(_configuration) --runTests $(_testOptions)
# Mac phases
- ${{ if eq(parameters.name, 'Mac') }}:
- script: brew update && brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f5b1ac99a7fba27c19cee0bc4f036775c889b359/Formula/libomp.rb mono-libgdiplus gettext && brew link gettext --force
- ${{ if eq(parameters.testDistro, 'noTests') }}:
- script: chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration)
- ${{ if eq(parameters.testDistro, '') }}:
- script: chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTests
- script: chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTests $(_testOptions)
# Linux phases
- ${{ if or(eq(parameters.name, 'Linux_Ubuntu16'), eq(parameters.name, 'Linux_Ubuntu14'), eq(parameters.name, 'Linux_CentOS7')) }}:
- script: $(_dockerRun) mlnet/ubuntu16-nativebuild:0.1 bash -c "source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --buildNativeBridgeOnly"
displayName: Build native bridge
- script: $(_dockerRun) mlnet/ubuntu16-general:0.1 bash -c "source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --skipNativeBridge"
displayName: Build python wheel
- ${{ if eq(parameters.testDistro, 'ubuntu16') }}:
- script: $(_dockerRun) mlnet/ubuntu16-general:0.1 bash -c "source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTestsOnly"
- script: $(_dockerRun) mlnet/ubuntu16-general:0.1 bash -c "source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTestsOnly $(_testOptions)"
displayName: Run tests Ubuntu16
- ${{ if eq(parameters.testDistro, 'ubuntu14') }}:
- script: $(_dockerRun) mlnet/ubuntu14-general:0.1 bash -c "source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTestsOnly"
- script: $(_dockerRun) mlnet/ubuntu14-general:0.1 bash -c "source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTestsOnly $(_testOptions)"
displayName: Run tests Ubuntu14
- ${{ if eq(parameters.testDistro, 'centos7') }}:
- script: $(_dockerRun) mlnet/centos7-general:0.1 bash -c "source /root/.bash_profile && source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTestsOnly"
- script: $(_dockerRun) mlnet/centos7-general:0.1 bash -c "source /root/.bash_profile && source /etc/profile && chmod 777 $(_buildScript) && $(_buildScript) --configuration $(_configuration) --runTestsOnly $(_testOptions)"
displayName: Run tests CentOS7

# Publish build artifacts
Expand Down
9 changes: 8 additions & 1 deletion build/vsts-ci-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ phases:
_configuration: RlsWinPy2.7
buildQueue:
name: Hosted VS2017
testOptions: --includeExtendedTests

# Build all configurations for Mac
- template: /build/ci/phase-template.yml
Expand All @@ -33,6 +34,7 @@ phases:
_configuration: RlsMacPy2.7
buildQueue:
name: Hosted macOS
testOptions: --includeExtendedTests

# Build all configurations for Linux
# Run tests on Ubuntu16
Expand All @@ -52,6 +54,8 @@ phases:
_configuration: RlsLinPy2.7
buildQueue:
name: Hosted Ubuntu 1604
testOptions: --includeExtendedTests

# Run tests on Ubuntu14
- template: /build/ci/phase-template.yml
parameters:
Expand All @@ -69,6 +73,8 @@ phases:
_configuration: RlsLinPy2.7
buildQueue:
name: Hosted Ubuntu 1604
testOptions: --includeExtendedTests

# Run tests on CentOS7
- template: /build/ci/phase-template.yml
parameters:
Expand All @@ -85,4 +91,5 @@ phases:
Py27:
_configuration: RlsLinPy2.7
buildQueue:
name: Hosted Ubuntu 1604
name: Hosted Ubuntu 1604
testOptions: --includeExtendedTests
5 changes: 3 additions & 2 deletions src/python/nimbusml.pyproj
Original file line number Diff line number Diff line change
Expand Up @@ -646,9 +646,9 @@
<Compile Include="nimbusml\__main__.py" />
<Compile Include="setup.py" />
<Compile Include="tests\test_copyright.py" />
<Compile Include="tests\test_docs_notebooks.py" />
<Compile Include="tests_extended\test_docs_notebooks.py" />
<Compile Include="tests\test_pyproj.py" />
<Compile Include="tests\test_docs_example.py" />
<Compile Include="tests_extended\test_docs_example.py" />
<Compile Include="tools\codegen_checker.py" />
<Compile Include="tools\code_fixer.py" />
<Compile Include="tools\compiler_utils.py" />
Expand Down Expand Up @@ -700,6 +700,7 @@
<Folder Include="docs\sphinx\modules\svm\kernel\" />
<Folder Include="docs\sphinx\_static\" />
<Folder Include="docs\sphinx\_static\images\" />
<Folder Include="tests_extended\" />
<Folder Include="nimbusml\" />
<Folder Include="nimbusml\cluster\" />
<Folder Include="nimbusml\datasets\" />
Expand Down