diff --git a/.ci/ci.yml b/.ci/ci.yml new file mode 100644 index 00000000000..b7caca49f16 --- /dev/null +++ b/.ci/ci.yml @@ -0,0 +1,55 @@ +jobs: +- job: libshogun + displayName: Linux libshogun + + pool: + vmImage: ubuntu-16.04 + + variables: + testRunTitle: '$(build.sourceBranchName)-debian' + testRunPlatform: debian + imageName: 'shogun/shogun-dev' + + steps: + - template: ./docker-steps.yml + +- job: python + displayName: Python Interface + dependsOn: libshogun + + pool: + vmImage: ubuntu-16.04 + + variables: + testRunTitle: '$(build.sourceBranchName)-debian' + testRunPlatform: debian + imageName: 'shogun/shogun-dev' + + steps: + - template: ./docker-steps.yml + parameters: + cmakeOptions: 'DINTERFACE_PYTHON=ON' + +- job: macOS + displayName: macOS CI Tests + + variables: + testRunTitle: '$(build.sourceBranchName)-macos' + testRunPlatform: macos + + pool: + vmImage: xcode9-macos10.13 + + steps: + - template: ./macos-steps.yml + +- job: Windows + displayName: Windows CI Tests + pool: + vmImage: 'vs2017-win2016' + + steps: + - template: ./windows-steps.yml + parameters: + buildConfiguration: Release + generator: Visual Studio 15 2017 Win64 diff --git a/.ci/docker-steps.yml b/.ci/docker-steps.yml new file mode 100644 index 00000000000..db7cb355a04 --- /dev/null +++ b/.ci/docker-steps.yml @@ -0,0 +1,41 @@ +steps: +- checkout: self + clean: true + fetchDepth: 5 + submodules: true + +- task: docker@0 + displayName: Setup + inputs: + action: 'Run an image' + imageName: $(imageName) + volumes: | + $(build.sourcesDirectory):/src + $(build.binariesDirectory):/build + workDir: '/build' + containerCommand: 'cmake -DENABLE_TESTING=ON ${{ parameters.cmakeOptions }} /src' + detached: false + +- task: docker@0 + displayName: Build + inputs: + action: 'Run an image' + imageName: $(imageName) + volumes: | + $(build.sourcesDirectory):/src + $(build.binariesDirectory):/build + workDir: '/build' + containerCommand: 'make -s -j2' + detached: false + +- task: docker@0 + displayName: Test + inputs: + action: 'Run an image' + imageName: $(imageName) + volumes: | + $(build.sourcesDirectory):/src + $(build.binariesDirectory):/build + workDir: '/build' + containerCommand: 'ctest --output-on-failure -j 2' + detached: false diff --git a/.ci/macos-steps.yml b/.ci/macos-steps.yml new file mode 100644 index 00000000000..3e1b3022402 --- /dev/null +++ b/.ci/macos-steps.yml @@ -0,0 +1,23 @@ +steps: +- checkout: self + clean: true + fetchDepth: 5 + submodules: true + +- bash: | + brew update + brew install cmake ccache pkg-config arpack eigen glpk hdf5 json-c lapack lzo nlopt snappy xz + displayName: Install dependencies + +- task: CMake@1 + displayName: Setup + inputs: + cmakeArgs: -DBUILD_EXAMPLES=OFF -DBUNDLE_JSON=OFF -DBUNDLE_NLOPT=OFF -DENABLE_TESTING=ON -DENABLE_COVERAGE=OFF -DBUILD_META_EXAMPLES=OFF .. + +- script: make -j4 + displayName: Build + workingDirectory: build + +- script: ctest --output-on-failure -j 2 + displayName: Test + workingDirectory: build diff --git a/.ci/windows-steps.yml b/.ci/windows-steps.yml new file mode 100644 index 00000000000..3a1195b030f --- /dev/null +++ b/.ci/windows-steps.yml @@ -0,0 +1,31 @@ +steps: +- checkout: self + clean: true + fetchDepth: 5 + submodules: true + +- task: CondaEnvironment@1 + displayName: Install dependencies + inputs: + createCustomEnvironment: True + environmentName: shogun + packageSpecs: 'python=3 setuptools numpy scipy eigen rxcpp cmake snappy zlib ctags ply ninja' + createOptions: '-q' + updateConda: false + +- task: CMake@1 + displayName: Setup + inputs: + cmakeArgs: -G "${{ parameters.generator }}" -DCMAKE_BUILD_TYPE=${{ parameters.buildConfiguration }} -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library -DBUILD_META_EXAMPLES=OFF -DENABLE_TESTING=ON .. + + +- task: VSBuild@1 + displayName: Build + inputs: + solution: '$(Build.ArtifactStagingDirectory)/build/shogun.sln' + platform: x64 + configuration: ${{ parameters.buildConfiguration }} + +- script: ctest -j%NUMBER_OF_PROCESSORS% -C ${{ parameters.buildConfiguration }} -V + displayName: Test + workingDirectory: $(Build.ArtifactStagingDirectory)/build \ No newline at end of file diff --git a/README.md b/README.md index 12400432d3f..2d9d7f7bbf8 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,7 @@ Cite Shogun: Develop branch build status: -[![Build Status](https://travis-ci.org/shogun-toolbox/shogun.svg?branch=develop)](https://travis-ci.org/shogun-toolbox/shogun) -[![Build status](https://ci.appveyor.com/api/projects/status/jx095rnr9qhg8dcv/branch/develop?svg=true)](https://ci.appveyor.com/project/vigsterkr/shogun/branch/develop) +[![Build status](https://dev.azure.com/shogunml/shogun/_apis/build/status/shogun-CI)](https://dev.azure.com/shogunml/shogun/_build/latest?definitionId=-1) [![codecov](https://codecov.io/gh/shogun-toolbox/shogun/branch/develop/graph/badge.svg)](https://codecov.io/gh/shogun-toolbox/shogun) Donate to Shogun via NumFocus: