Skip to content

Fix C/I, take II

Fix C/I, take II #724

Workflow file for this run

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
conda install \
conda-build \
docopt \
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
LUE_CONAN_PACKAGES="boost docopt.cpp fmt gdal glfw hdf5 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__)"