-
Notifications
You must be signed in to change notification settings - Fork 1
130 lines (108 loc) · 3.71 KB
/
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: Continuous Integration
on:
push:
paths-ignore:
- 'doc/**'
- '**.md'
pull_request:
schedule:
- cron: '0 0 1 * *'
workflow_dispatch:
env:
CMAKE_CCACHE_LAUNCHER: -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
jobs:
maybe_skip:
runs-on: ubuntu-latest
outputs:
should_skip: ${{steps.skip_check.outputs.should_skip}}
steps:
- uses: fkirc/skip-duplicate-actions@v5
id: skip_check
with:
cancel_others: 'true'
build:
name: build (${{matrix.os}}, ${{matrix.robotology.yarp}}, ${{matrix.compiler.cc}})
runs-on: ${{matrix.os}}
needs: maybe_skip
if: ${{needs.maybe_skip.outputs.should_skip != 'true'}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
robotology:
- { yarp: yarp-3.8, cmake: 3.16.x }
- { yarp: yarp-3.9, cmake: 3.16.x }
- { yarp: master, cmake: 3.19.x }
compiler:
- { cc: gcc, cxx: g++ }
- { cc: clang, cxx: clang++ }
experimental:
- ${{github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'}}
exclude:
- { experimental: false, robotology: { yarp: master } }
steps:
- name: Check out teo-bimanipulation
uses: actions/checkout@v4
- name: Check out YCM
uses: actions/checkout@v4
with:
repository: robotology/ycm
path: .deps/ycm
- name: Check out YARP
uses: actions/checkout@v4
with:
repository: robotology/yarp
ref: ${{matrix.robotology.yarp}}
path: .deps/yarp
- name: Check out Orocos KDL
uses: actions/checkout@v4
with:
repository: orocos/orocos_kinematics_dynamics
path: .deps/kdl
- name: Check out kinematics-dynamics
uses: actions/checkout@v4
with:
repository: roboticslab-uc3m/kinematics-dynamics
path: .deps/kinematics-dynamics
- name: Install dependencies via apt
run: sudo apt-get install -qq ccache libeigen3-dev
- name: Set up CMake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: ${{matrix.robotology.cmake}}
- name: Set up Ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{matrix.os}}-${{matrix.robotology.yarp}}-${{matrix.compiler.cc}}
- name: Set environment variables
run: |
echo "CC=${{matrix.compiler.cc}}" >> $GITHUB_ENV
echo "CXX=${{matrix.compiler.cxx}}" >> $GITHUB_ENV
- name: Build YCM
run: |
cmake -S .deps/ycm -B .deps/ycm/build
cmake --build .deps/ycm/build
sudo cmake --install .deps/ycm/build
- name: Build YARP
run: |
cmake -S .deps/yarp -B .deps/yarp/build $CMAKE_CCACHE_LAUNCHER -DSKIP_ACE=ON -DYARP_DISABLE_VERSION_SOURCE=ON
cmake --build .deps/yarp/build
sudo cmake --install .deps/yarp/build
- name: Build Orocos KDL
run: |
cmake -S .deps/kdl/orocos_kdl -B .deps/kdl/orocos_kdl/build $CMAKE_CCACHE_LAUNCHER
cmake --build .deps/kdl/orocos_kdl/build
sudo cmake --install .deps/kdl/orocos_kdl/build
- name: Build kinematics-dynamics
run: |
cmake -S .deps/kinematics-dynamics -B .deps/kinematics-dynamics/build $CMAKE_CCACHE_LAUNCHER
cmake --build .deps/kinematics-dynamics/build
sudo cmake --install .deps/kinematics-dynamics/build
- name: Configure teo-bimanipulation
run: cmake -S . -B build $CMAKE_CCACHE_LAUNCHER
- name: Compile teo-bimanipulation
run: cmake --build build
- name: Install teo-bimanipulation
run: sudo cmake --install build && sudo ldconfig
- name: Uninstall teo-bimanipulation
run: sudo cmake --build build --target uninstall