13
13
jobs :
14
14
15
15
clang-format :
16
- runs-on : ubuntu-20 .04
16
+ runs-on : ubuntu-22 .04
17
17
steps :
18
18
- name : Checkout repository code
19
19
uses : actions/checkout@v3
20
- - name : Install clang-format-10
20
+ - name : Install clang-format-14
21
21
run : |
22
22
sudo apt-get -qq update
23
- sudo apt-get -qq install clang-format-10
23
+ sudo apt-get -qq install clang-format-14
24
24
- name : Run clang-format-check
25
25
run : |
26
26
./.clang-format-check.sh
@@ -29,25 +29,28 @@ jobs:
29
29
strategy :
30
30
fail-fast : false
31
31
matrix :
32
- os : [ubuntu-20 .04]
32
+ os : [ubuntu-22.04, ubuntu-24 .04]
33
33
build-type : [Debug, RelWithDebInfo]
34
- standalone : [standalone, catkin ]
34
+ standalone : [standalone, colcon ]
35
35
solvers-from-source : [SolversFromSource, SolversFromAPT]
36
36
runs-on : ${{ matrix.os }}
37
37
steps :
38
38
- name : Set environment variables
39
39
run : |
40
- echo "LD_LIBRARY_PATH=/opt/blasfeo/lib:/opt/hpipm/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV # for HPIPM
41
- - name : Set ROS version
42
- if : matrix.standalone == 'catkin'
43
- run : |
44
- if [ "${{ matrix.os }}" == "ubuntu-20.04" ]
40
+ set -e
41
+ set -x
42
+ echo "LD_LIBRARY_PATH=/opt/blasfeo/lib:/opt/hpipm/lib:/usr/local/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV # for HPIPM
43
+ if [ "${{ matrix.os }}" == "ubuntu-22.04" ] && \
44
+ [ "${{ matrix.build-type }}" == "RelWithDebInfo" ] && \
45
+ [ "${{ matrix.standalone }}" == "colcon" ] && \
46
+ [ "${{ matrix.solvers-from-source }}" == "SolversFromAPT" ] && \
47
+ [ "${{ github.repository_owner }}" == "isri-aist" ] && \
48
+ [ "${{ github.ref }}" == "refs/heads/master" ]
45
49
then
46
- echo "ROS_DISTRO=noetic" >> $GITHUB_ENV
47
- echo "PYTHON_PACKAGE_PREFIX=python3" >> $GITHUB_ENV
48
- else # if [ "${{ matrix.os }}" == "ubuntu-18.04" ]
49
- echo "ROS_DISTRO=melodic" >> $GITHUB_ENV
50
- echo "PYTHON_PACKAGE_PREFIX=python" >> $GITHUB_ENV
50
+ echo "UPLOAD_DOCUMENTATION=true" >> $GITHUB_ENV
51
+ sudo apt-get install -qq doxygen graphviz
52
+ else
53
+ echo "UPLOAD_DOCUMENTATION=false" >> $GITHUB_ENV
51
54
fi
52
55
- name : Check secrets
53
56
run : |
@@ -63,52 +66,14 @@ jobs:
63
66
fi
64
67
env :
65
68
GITLAB_TOKEN : ${{ secrets.GITLAB_TOKEN }}
66
- - name : Install ROS
67
- if : matrix.standalone == 'catkin'
68
- run : |
69
- set -e
70
- set -x
71
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
72
- wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
73
- sudo apt-get update -qq
74
- sudo apt-get install -qq ros-${ROS_DISTRO}-ros-base ${PYTHON_PACKAGE_PREFIX}-catkin-tools ${PYTHON_PACKAGE_PREFIX}-rosdep doxygen graphviz
75
- - name : Setup catkin workspace
76
- if : matrix.standalone == 'catkin'
77
- run : |
78
- set -e
79
- set -x
80
- mkdir -p ${GITHUB_WORKSPACE}/catkin_ws/src/
81
- cd ${GITHUB_WORKSPACE}/catkin_ws
82
- set +x
83
- . /opt/ros/${ROS_DISTRO}/setup.bash
84
- set -x
85
- catkin init
86
- catkin build --limit-status-rate 0.1
87
- - name : Checkout repository code
88
- if : matrix.standalone == 'catkin'
89
- uses : actions/checkout@v3
90
- with :
91
- submodules : recursive
92
- path : catkin_ws/src/QpSolverCollection
93
- - name : Checkout repository code
94
- if : matrix.standalone == 'standalone'
95
- uses : actions/checkout@v3
69
+ - name : Install ROS2
70
+ if : matrix.standalone == 'colcon'
71
+ uses : jrl-umi3218/github-actions/install-dependencies@master
96
72
with :
97
- submodules : recursive
98
- - name : Rosdep install
99
- if : matrix.standalone == 'catkin'
100
- run : |
101
- set -e
102
- set -x
103
- cd ${GITHUB_WORKSPACE}/catkin_ws
104
- set +x
105
- . devel/setup.bash
106
- set -x
107
- sudo rosdep init
108
- rosdep update
109
- rosdep install -y -r --from-paths src --ignore-src
110
- - name : Install solvers via apt
111
- if : matrix.solvers-from-source == 'SolversFromAPT'
73
+ ros : |
74
+ apt: ros-base
75
+ - name : Install solvers via apt (Ubuntu 22)
76
+ if : matrix.solvers-from-source == 'SolversFromAPT' && matrix.os == 'ubuntu-22.04'
112
77
uses : jrl-umi3218/github-actions/install-dependencies@master
113
78
with :
114
79
build-type : ${{ matrix.build-type }}
@@ -117,6 +82,20 @@ jobs:
117
82
mc-rtc:
118
83
cloudsmith: mc-rtc/head
119
84
apt: libmetis-dev libeigen3-dev libgtest-dev graphviz doxygen libeigen-qld-dev libeigen-quadprog-dev libjrl-qp-dev libqpoases-dev libosqp-eigen-dev libnasoq-dev libhpipm-dev libproxsuite-dev libqpmad-dev
85
+ - name : Install solvers via apt (Ubuntu 24)
86
+ if : matrix.solvers-from-source == 'SolversFromAPT' && matrix.os == 'ubuntu-24.04'
87
+ uses : jrl-umi3218/github-actions/install-dependencies@master
88
+ with :
89
+ build-type : ${{ matrix.build-type }}
90
+ ubuntu : |
91
+ apt-mirrors:
92
+ mc-rtc:
93
+ cloudsmith: mc-rtc/head
94
+ apt: libmetis-dev libeigen3-dev libgtest-dev graphviz doxygen libeigen-qld-dev libeigen-quadprog-dev libjrl-qp-dev libqpoases-dev libosqp-eigen-dev libhpipm-dev libproxsuite-dev libqpmad-dev
95
+ github : |
96
+ - path: isri-aist/nasoq
97
+ ref: debian
98
+ options: -DCMAKE_INSTALL_PREFIX=/usr/local -DNASOQ_BLAS_BACKEND=OpenBLAS -DNASOQ_USE_CLAPACK=ON -DNASOQ_BUILD_CLI=OFF -DNASOQ_BUILD_EXAMPLES=OFF -DNASOQ_BUILD_TESTS=OFF -DNASOQ_BUILD_DOCS=OFF
120
99
- name : Install solvers from source
121
100
if : matrix.solvers-from-source == 'SolversFromSource'
122
101
uses : jrl-umi3218/github-actions/install-dependencies@master
@@ -134,9 +113,9 @@ jobs:
134
113
- path: coin-or/qpOASES
135
114
options: -DBUILD_SHARED_LIBS=ON -DQPOASES_BUILD_EXAMPLES=OFF
136
115
- path: osqp/osqp
137
- - path: robotology /osqp-eigen
138
- - path: mmurooka /nasoq
139
- ref: cmake-install
116
+ - path: chuoru /osqp-eigen
117
+ - path: isri-aist /nasoq
118
+ ref: debian
140
119
options: -DCMAKE_INSTALL_PREFIX=/usr/local -DNASOQ_BLAS_BACKEND=OpenBLAS -DNASOQ_USE_CLAPACK=ON -DNASOQ_BUILD_CLI=OFF -DNASOQ_BUILD_EXAMPLES=OFF -DNASOQ_BUILD_TESTS=OFF -DNASOQ_BUILD_DOCS=OFF
141
120
- path: giaf/blasfeo
142
121
options: -DBUILD_SHARED_LIBS=ON -DTARGET=X64_AUTOMATIC -DBLASFEO_EXAMPLES=OFF
@@ -154,38 +133,28 @@ jobs:
154
133
github : |
155
134
- path: [email protected] :multi-contact/eigen-lssol
156
135
options: -DBUILD_TESTING=OFF -DPYTHON_BINDING=OFF -DINSTALL_DOCUMENTATION=OFF
157
- - name : Catkin build
158
- if : matrix.standalone == 'catkin'
159
- run : |
160
- set -e
161
- set -x
162
- cd ${GITHUB_WORKSPACE}/catkin_ws
163
- set +x
164
- . devel/setup.bash
165
- set -x
166
- catkin build --limit-status-rate 0.1 -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
167
- -DDEFAULT_ENABLE_ALL=ON -DENABLE_LSSOL=${{ env.ENABLE_PRIVATE_SOLVERS }} \
168
- -DSKIP_PRIVATE_SOLVER_TEST=${{ env.SKIP_PRIVATE_SOLVER_TEST }} -DFORCE_ALL_SOLVER_TEST=ON -DINSTALL_DOCUMENTATION=ON
169
- - name : Run tests
170
- if : matrix.standalone == 'catkin'
171
- run : |
172
- set -e
173
- set -x
174
- cd ${GITHUB_WORKSPACE}/catkin_ws
175
- set +x
176
- . devel/setup.bash
177
- set -x
178
- catkin build --limit-status-rate 0.1 --catkin-make-args run_tests -- qp_solver_collection --no-deps
179
- catkin_test_results --verbose --all build
180
- - name : Build and test
136
+ - name : Checkout repository code
137
+ if : matrix.standalone == 'standalone'
138
+ uses : actions/checkout@v3
139
+ with :
140
+ submodules : recursive
141
+ - name : Standalone build
181
142
if : matrix.standalone == 'standalone'
182
143
uses : jrl-umi3218/github-actions/build-cmake-project@master
183
144
with :
184
145
build-type : ${{ matrix.build-type }}
185
- options : -DDEFAULT_ENABLE_ALL=ON -DENABLE_LSSOL=${{ env.ENABLE_PRIVATE_SOLVERS }} -DSKIP_PRIVATE_SOLVER_TEST=${{ env.SKIP_PRIVATE_SOLVER_TEST }} -DFORCE_ALL_SOLVER_TEST=ON -DINSTALL_DOCUMENTATION=ON
146
+ options : -DINSTALL_DOCUMENTATION=${{ env.UPLOAD_DOCUMENTATION }} -DDEFAULT_ENABLE_ALL=ON -DENABLE_LSSOL=${{ env.ENABLE_PRIVATE_SOLVERS }} -DSKIP_PRIVATE_SOLVER_TEST=${{ env.SKIP_PRIVATE_SOLVER_TEST }} -DFORCE_ALL_SOLVER_TEST=ON
147
+ - name : Colcon build
148
+ if : matrix.standalone == 'colcon'
149
+ uses : jrl-umi3218/github-actions/build-colcon-project@master
150
+ with :
151
+ build-type : ${{ matrix.build-type }}
152
+ cmake-args : -DUSE_ROS2=ON -DINSTALL_DOCUMENTATION=${{ env.UPLOAD_DOCUMENTATION }} -DDEFAULT_ENABLE_ALL=ON -DENABLE_LSSOL=${{ env.ENABLE_PRIVATE_SOLVERS }} -DSKIP_PRIVATE_SOLVER_TEST=${{ env.SKIP_PRIVATE_SOLVER_TEST }} -DFORCE_ALL_SOLVER_TEST=ON
153
+ build-packages : qp_solver_collection
154
+ test-packages : qp_solver_collection
186
155
- name : Upload documentation
187
156
# Only run for one configuration and on origin master branch
188
- if : matrix.os == 'ubuntu-20.04' && matrix.build-type == 'RelWithDebInfo' && matrix.standalone == 'catkin' && matrix.solvers-from-source == 'SolversFromAPT' && github.repository_owner == 'isri-aist' && github.ref == 'refs/heads/master '
157
+ if : env.UPLOAD_DOCUMENTATION == 'true '
189
158
run : |
190
159
set -e
191
160
set -x
0 commit comments