Fix C/I, take IV #726
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows CI | |
on: | |
push: | |
branches-ignore: | |
- "ghxyz" | |
paths: | |
- "conanfile.py" | |
- ".github/workflows/windows.yml" | |
- "environment/cmake/**" | |
- "source/**" | |
- "!source/qa/python/qa/**" | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: ["windows-2022"] | |
vs: | |
# - { name: "Visual Studio 16 2019", version: "16"} # , toolset: "v142" } | |
- { name: "Visual Studio 17 2022", version: "17"} # , toolset: "v143" } | |
# toolset: ["14.2", "14.3"] | |
python-version: ["3.9"] | |
architecture: ["amd64"] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.os }} / ${{ matrix.vs.name }} / python - ${{ matrix.python-version }} | |
steps: | |
- name: checkout lue | |
uses: actions/checkout@v3 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
python-version: ${{ matrix.python-version }} | |
channels: conda-forge | |
- shell: bash -l {0} | |
run: | | |
# Don't install C++ libraries with Conda. Use Conan for that. The Conan compiler | |
# settings are used when building LUE. Mixing Conda/Conan packages likely results | |
# in conflicts. Make an exception for numpy. Use Conda only for Python packages. | |
# conda-build provides the conda-develop command used below | |
# TODO Use the GDAL Conan package instead of the Conda package, once the GDAL | |
# Conan package actually works | |
conda install \ | |
conda-build \ | |
docopt \ | |
gdal \ | |
jinja2 \ | |
matplotlib \ | |
ninja \ | |
numpy \ | |
pip | |
# Use conan from pypi to get the latest version | |
pip install "conan>=2" | |
# TODO Write host/build profiles and use those | |
conan profile detect | |
- uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: ${{ matrix.architecture }} | |
# toolset: ${{ matrix.toolset }} | |
vsversion: ${{ matrix.vs.version }} | |
- name: configure lue | |
shell: bash -l {0} | |
run: | | |
mkdir $GITHUB_WORKSPACE/../build | |
# TODO Use the GDAL Conan package instead of the Conda package, once the GDAL | |
# Conan package actually works | |
# gdal hdf5 | |
LUE_CONAN_PACKAGES="boost docopt.cpp fmt glfw hwloc imgui mimalloc nlohmann_json pybind11 span-lite vulkan-headers vulkan-loader" conan install . \ | |
--profile=default \ | |
--settings:host compiler.cppstd=17 \ | |
--settings:build compiler.cppstd=17 \ | |
--settings:build build_type=Release \ | |
--build=missing \ | |
--output-folder=$GITHUB_WORKSPACE/../build | |
CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/../build \ | |
cmake --preset conan-release \ | |
-B $GITHUB_WORKSPACE/../build \ | |
-D LUE_BUILD_QA=TRUE \ | |
-D LUE_QA_WITH_PYTHON_API=TRUE \ | |
-D LUE_QA_WITH_TESTS=TRUE \ | |
-D LUE_QA_TEST_NR_LOCALITIES_PER_TEST=1 \ | |
-D LUE_QA_TEST_NR_THREADS_PER_LOCALITY=2 \ | |
-D LUE_DATA_MODEL_WITH_PYTHON_API=TRUE \ | |
-D LUE_DATA_MODEL_WITH_UTILITIES=TRUE \ | |
-D LUE_FRAMEWORK_WITH_PYTHON_API=TRUE \ | |
-D LUE_BUILD_HPX=TRUE \ | |
-D HPX_USE_CMAKE_CXX_STANDARD=TRUE \ | |
-D HPX_WITH_MALLOC="mimalloc" \ | |
-D HPX_WITH_PKGCONFIG=FALSE \ | |
-D HPX_WITH_EXAMPLES=FALSE \ | |
-D HPX_WITH_TESTS=FALSE | |
- name: build lue | |
shell: bash -l {0} | |
run: | | |
cmake --build $GITHUB_WORKSPACE/../build --target all | |
- name: test lue | |
shell: bash -l {0} | |
run: | | |
cd $GITHUB_WORKSPACE/../build | |
ctest --output-on-failure | |
- name: install lue runtime component | |
shell: bash -l {0} | |
run: | | |
cmake --install $GITHUB_WORKSPACE/../build --prefix install --component runtime | |
cmake --install $GITHUB_WORKSPACE/../build --prefix install --component lue_runtime | |
export PATH="`pwd`/install/bin:$PATH" | |
install/bin/lue_translate --version | |
install/bin/lue_validate --version | |
install/bin/lue_view --version | |
# Add our package to the set of Conda packages | |
conda-develop install/lib/python${{ matrix.python-version }} | |
install/bin/lue_scalability --version | |
python -c "import lue, lue.data_model, lue.framework, lue.pcraster, lue.qa.scalability; print(lue.__version__)" |