-
Notifications
You must be signed in to change notification settings - Fork 397
133 lines (119 loc) · 3.72 KB
/
build-test.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
131
132
133
# This workflow builds & runs test cases in iceoryx
name: Build & Test
# Triggers the workflow on push or pull request events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master, release*, integration* ]
jobs:
pre-flight-check:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- run: ./tools/scripts/clang_format.sh check
build-test-ubuntu:
runs-on: ubuntu-20.04
needs: pre-flight-check
steps:
- uses: actions/checkout@v4
- uses: egor-tensin/[email protected]
with:
version: 9
platform: x64
- uses: jwlawson/[email protected]
with:
cmake-version: '3.16.3' # version used in Ubuntu 20.04 LTS
- run: ./tools/ci/build-test-ubuntu.sh
# uses ubuntu to run freebsd in a virtualbox
build-test-unix-with-freebsd:
# prevent stuck jobs consuming runners for 6 hours
timeout-minutes: 60
needs: pre-flight-check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Unix (FreeBSD) test
id: Test
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
copyback: false
prepare: pkg install -y cmake git ncurses bash wget bison
run: |
git config --global --add safe.directory /home/runner/work/iceoryx/iceoryx
./tools/ci/build-test-freebsd.sh
build-test-windows:
runs-on: windows-2019
needs: pre-flight-check
steps:
- uses: actions/checkout@v4
- run: ./tools/ci/build-test-windows.ps1
shell: powershell
run-integration-test:
runs-on: ubuntu-22.04
needs: pre-flight-check
steps:
- name: Setup ROS
uses: ros-tooling/[email protected]
with:
required-ros-distributions: humble
- uses: actions/checkout@v4
- run: ./tools/ci/run-integration-test.sh
build-test-ubuntu-with-sanitizers-gcc-latest:
runs-on: ubuntu-20.04
needs: pre-flight-check
steps:
- uses: egor-tensin/[email protected]
with:
version: 11
platform: x64
- uses: actions/checkout@v4
- run: ./tools/ci/build-test-ubuntu-with-sanitizers.sh gcc
build-test-ubuntu-with-sanitizers-clang-latest:
runs-on: ubuntu-20.04
needs: pre-flight-check
steps:
- uses: egor-tensin/setup-clang@v1
with:
version: 13
platform: x64
- uses: actions/checkout@v4
- run: ./tools/ci/build-test-ubuntu-with-sanitizers.sh clang
build-test-macos-with-sanitizers:
runs-on: macos-latest
# prevent stuck jobs consuming macos runners for 6 hours
timeout-minutes: 60
needs: pre-flight-check
steps:
- uses: actions/checkout@v4
- run: ./tools/ci/build-test-macos-with-sanitizers.sh
coverage-and-docs:
runs-on: ubuntu-20.04
needs: pre-flight-check
steps:
- uses: actions/checkout@v4
- run: ./tools/ci/coverage-and-docs.sh
- name: Archive generated doxygen
uses: actions/upload-artifact@v4
with:
name: iceoryx-pdf
path: |
./build/doc/*.pdf
retention-days: 30
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./lcov_results/unittest/lcov/iceoryx_lcov_result_unit.info
name: iceoryx
flags: unittests
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./lcov_results/unittest_timing/lcov/iceoryx_lcov_result_unit-timing.info
name: iceoryx
flags: unittests_timing
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}