-
Notifications
You must be signed in to change notification settings - Fork 38
130 lines (113 loc) · 4.54 KB
/
conda-forge-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: C++ CI Workflow with conda-forge dependencies
on:
push:
branches:
- master
pull_request:
schedule:
# * is a special character in YAML so you have to quote this string
# Execute a "nightly" build at 2 AM UTC
- cron: '0 2 * * *'
# Workaround for https://github.com/conda-forge/mumps-feedstock/issues/125
# and https://github.com/conda-forge/mumps-feedstock/pull/126#issuecomment-2355357834
env:
OMP_NUM_THREADS: 1
jobs:
build:
name: '[${{ matrix.os }}@${{ matrix.build_type }}@conda]'
runs-on: ${{ matrix.os }}
strategy:
matrix:
build_type: [Release]
os: [ubuntu-latest, windows-2019, macos-latest]
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Miniforge3
miniforge-version: latest
channels: conda-forge,robostack-staging
channel-priority: true
- name: Dependencies
shell: bash -l {0}
run: |
# Workaround for https://github.com/conda-incubator/setup-miniconda/issues/186
conda config --remove channels defaults
# Dependencies
conda install cmake compilers make ninja pkg-config \
"idyntree>=12.2.1" "yarp>=3.5.0" libmatio libmatio-cpp librobometry \
liblie-group-controllers eigen qhull "casadi>=3.5.5" cppad spdlog \
nlohmann_json manif manifpy pybind11 numpy pytest scipy opencv pcl \
tomlplusplus libunicycle-footstep-planner "icub-models>=1.23.4" \
ros-humble-rclcpp onnxruntime-cpp libbayes-filters-lib cmake-package-check catch2
- name: Linux-only Dependencies [Linux]
if: contains(matrix.os, 'ubuntu')
shell: bash -l {0}
run: |
conda install manifpy mesa-libgl-devel-cos7-x86_64
- name: Windows-only Dependencies [Windows]
if: contains(matrix.os, 'windows')
shell: bash -l {0}
run: |
conda install vs2019_win-64
- name: Windows-workarounds [Windows]
if: contains(matrix.os, 'windows')
shell: cmd /C CALL {0}
run: |
:: Due to this https://github.com/conda-forge/icub-models-feedstock/issues/18
:: pcl is removed as a workaround for https://github.com/ami-iit/bipedal-locomotion-framework/pull/695#issuecomment-1632208836
:: pcl can be re-added once we have a ros humble build compatible with PCL 1.13.0
:: pybind11 constrained as workaround for https://github.com/conda-forge/pybind11-feedstock/issues/95
conda install "pybind11<2.12.0"
conda remove icub-models pcl
- name: Print used environment
shell: bash -l {0}
run: |
conda list
env
- name: Configure [Linux&macOS]
if: contains(matrix.os, 'macos') || contains(matrix.os, 'ubuntu')
shell: bash -l {0}
run: |
mkdir -p build
cd build
cmake -GNinja -DBUILD_TESTING:BOOL=ON -DFRAMEWORK_COMPILE_IK:BOOL=OFF -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-DFRAMEWORK_COMPILE_PYTHON_BINDINGS:BOOL=ON -DUSE_SYSTEM_Catch2:BOOL=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ..
- name: Build [Linux&macOS]
if: contains(matrix.os, 'macos') || contains(matrix.os, 'ubuntu')
shell: bash -l {0}
run: |
cd build
cmake --build . --config ${{ matrix.build_type }}
- name: Test [Linux&macOS]
if: contains(matrix.os, 'macos') || contains(matrix.os, 'ubuntu')
shell: bash -l {0}
run: |
cd build
ctest --output-on-failure -C ${{ matrix.build_type }}
- name: Configure [Windows]
if: contains(matrix.os, 'windows')
shell: cmd /C call {0}
run: |
mkdir -p build
cd build
cmake -GNinja -DBUILD_TESTING:BOOL=ON -DFRAMEWORK_COMPILE_PYTHON_BINDINGS:BOOL=ON -DUSE_SYSTEM_Catch2:BOOL=ON -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ..
- name: Build [Windows]
if: contains(matrix.os, 'windows')
shell: cmd /C call {0}
run: |
cd build
cmake --build . --config ${{ matrix.build_type }}
- name: Test [Windows]
if: contains(matrix.os, 'windows')
shell: cmd /C call {0}
run: |
cd build
ctest --output-on-failure -C ${{ matrix.build_type }}
- name: Install and test installed package
shell: bash -l {0}
run: |
cd build
cmake --install . --config ${{ matrix.build_type }}
cmake-package-check BipedalLocomotionFramework --targets BipedalLocomotion::Framework