diff --git a/appveyor.yml b/appveyor.yml index e529ef780223..082063ae572c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -19,12 +19,13 @@ os: Visual Studio 2015 only_commits: - # Skip commits not related to Python, C++ or Rust + # Skip commits not related to Python, C++, C#, or Rust files: - appveyor.yml - c_glib/ - ci/ - cpp/ + - csharp/ - format/ - python/ - rust/ @@ -85,6 +86,9 @@ environment: - JOB: "Rust" TARGET: x86_64-pc-windows-msvc USE_CLCACHE: false + - JOB: "C#" + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + USE_CLCACHE: false MSVC_DEFAULT_OPTIONS: ON APPVEYOR_SAVE_CACHE_ON_ERROR: true diff --git a/ci/appveyor-build.bat b/ci/appveyor-build.bat index 6e554199f08e..2d5b37aaf203 100644 --- a/ci/appveyor-build.bat +++ b/ci/appveyor-build.bat @@ -17,16 +17,30 @@ @echo on -if "%JOB%" == "Rust" ( - call ci\rust-build-main.bat +IF /i "%JOB%" == "C#" goto csharp +IF /i "%JOB%" == "rust" goto rust + +@rem All other builds are C++ builds +goto cpp + +:cpp +git config core.symlinks true +git reset --hard +if "%JOB:~,5%" == "MinGW" ( + call ci\appveyor-cpp-build-mingw.bat +) else if "%JOB%" == "Cmake_Script_Tests" ( + call ci\appveyor-cpp-test-cmake-script.bat ) else ( - git config core.symlinks true - git reset --hard - if "%JOB:~,5%" == "MinGW" ( - call ci\appveyor-cpp-build-mingw.bat - ) else if "%JOB%" == "Cmake_Script_Tests" ( - call ci\appveyor-cpp-test-cmake-script.bat - ) else ( - call ci\appveyor-cpp-build.bat - ) + call ci\appveyor-cpp-build.bat ) +goto scriptexit + +:csharp +call ci\appveyor-csharp-build.bat +goto scriptexit + +:rust +call ci\rust-build-main.bat +goto scriptexit + +:scriptexit diff --git a/ci/appveyor-csharp-build.bat b/ci/appveyor-csharp-build.bat new file mode 100644 index 000000000000..14dc71d61ccc --- /dev/null +++ b/ci/appveyor-csharp-build.bat @@ -0,0 +1,24 @@ +@rem Licensed to the Apache Software Foundation (ASF) under one +@rem or more contributor license agreements. See the NOTICE file +@rem distributed with this work for additional information +@rem regarding copyright ownership. The ASF licenses this file +@rem to you under the Apache License, Version 2.0 (the +@rem "License"); you may not use this file except in compliance +@rem with the License. You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, +@rem software distributed under the License is distributed on an +@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@rem KIND, either express or implied. See the License for the +@rem specific language governing permissions and limitations +@rem under the License. + +@rem The "main" C# build script for Windows CI + +pushd csharp + +dotnet test || exit /B + +popd diff --git a/ci/appveyor-install.bat b/ci/appveyor-install.bat index 3ab8f38f68c4..78269d0db47d 100644 --- a/ci/appveyor-install.bat +++ b/ci/appveyor-install.bat @@ -17,19 +17,34 @@ @echo on -if "%JOB%" == "Rust" ( - curl -sSf -o rustup-init.exe https://win.rustup.rs/ - rustup-init.exe -y --default-host %TARGET% --default-toolchain stable - set "PATH=%PATH%;C:\Users\Appveyor\.cargo\bin" - rustup install stable - rustup install nightly - rustc -Vv - cargo -V -) else if "%JOB:~,5%" == "MinGW" ( - call ci\appveyor-cpp-setup-mingw.bat -) else ( - set "PATH=C:\Miniconda36-x64;C:\Miniconda36-x64\Scripts;C:\Miniconda36-x64\Library\bin;%PATH%" - set BOOST_ROOT=C:\Libraries\boost_1_67_0 - set BOOST_LIBRARYDIR=C:\Libraries\boost_1_67_0\lib64-msvc-14.0 - call ci\appveyor-cpp-setup.bat -) +IF /i "%JOB%" == "C#" goto csharp +IF "%JOB:~,5%" == "MinGW" goto mingw +IF /i "%JOB%" == "rust" goto rust + +@rem all else are C++ +goto cpp + +:cpp +set "PATH=C:\Miniconda36-x64;C:\Miniconda36-x64\Scripts;C:\Miniconda36-x64\Library\bin;%PATH%" +set BOOST_ROOT=C:\Libraries\boost_1_67_0 +set BOOST_LIBRARYDIR=C:\Libraries\boost_1_67_0\lib64-msvc-14.0 +call ci\appveyor-cpp-setup.bat +goto scriptexit + +:rust +curl -sSf -o rustup-init.exe https://win.rustup.rs/ +rustup-init.exe -y --default-host %TARGET% --default-toolchain stable +set "PATH=%PATH%;C:\Users\Appveyor\.cargo\bin" +rustup install stable +rustup install nightly +rustc -Vv +cargo -V +goto scriptexit + +:mingw +call ci\appveyor-cpp-setup-mingw.bat +goto scriptexit + +:csharp + +:scriptexit