iox-#1036 Builder pattern for message queue #7565
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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* ] | |
jobs: | |
pre-flight-check: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install iceoryx dependencies and clang-tidy | |
uses: ./.github/actions/install-iceoryx-deps-and-clang | |
- run: ./tools/scripts/clang_format.sh check | |
- run: ./tools/scripts/list_stl_dependencies.sh check | |
- run: ./tools/scripts/check_test_ids.sh | |
- run: ./tools/scripts/check_invalid_characters.sh | |
- run: ./tools/ci/cmake-linter.sh | |
build-test-ubuntu: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: ubuntu-20.04 | |
needs: pre-flight-check | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: egor-tensin/[email protected] | |
with: | |
version: 8 | |
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 macos 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: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Unix (FreeBSD) test | |
id: Test | |
uses: vmactions/freebsd-vm@v0 | |
with: | |
usesh: true | |
copyback: false | |
mem: 4096 | |
prepare: pkg install -y cmake git ncurses bash wget | |
run: | | |
git config --global --add safe.directory /Users/runner/work/iceoryx/iceoryx | |
./tools/ci/build-test-freebsd.sh | |
build-test-windows: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: windows-latest | |
needs: pre-flight-check | |
steps: | |
- uses: actions/checkout@v3 | |
- run: ./tools/ci/build-test-windows.ps1 | |
shell: powershell | |
run-integration-test: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- name: Setup ROS | |
uses: ros-tooling/[email protected] | |
with: | |
required-ros-distributions: humble | |
- uses: actions/checkout@v3 | |
- run: ./tools/ci/run-integration-test.sh | |
build-test-ubuntu-with-address-sanitizer-gcc-latest: | |
# prevent stuck jobs consuming runners for 1 hour | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- uses: egor-tensin/[email protected] | |
with: | |
version: 12 | |
platform: x64 | |
- uses: actions/checkout@v3 | |
- name: Run Address Sanitizer | |
run: ./tools/ci/build-test-ubuntu-with-sanitizers.sh gcc asan | |
build-test-ubuntu-with-address-sanitizer-clang-latest: | |
# prevent stuck jobs consuming runners for 1 hour | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install iceoryx dependencies and clang-tidy | |
uses: ./.github/actions/install-iceoryx-deps-and-clang | |
- name: Run Address Sanitizer | |
run: ./tools/ci/build-test-ubuntu-with-sanitizers.sh clang asan | |
build-test-macos-with-address-sanitizer: | |
# prevent stuck jobs consuming runners for 1 hour | |
timeout-minutes: 60 | |
runs-on: macos-latest | |
needs: pre-flight-check | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run Address Sanitizer | |
run: ./tools/ci/build-test-macos-with-sanitizers.sh asan | |
build-test-ubuntu-with-thread-sanitizer-clang-latest: | |
# prevent stuck jobs consuming runners for 3 hours | |
timeout-minutes: 180 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install iceoryx dependencies and clang-tidy | |
uses: ./.github/actions/install-iceoryx-deps-and-clang | |
- name: Run Thread Sanitizer | |
run: ./tools/ci/build-test-ubuntu-with-sanitizers.sh clang tsan | |
# gcc 5.4 is compiler used in QNX 7.0 | |
build-test-ubuntu-with-gcc5: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- uses: actions/checkout@v3 | |
- run: ./tools/ci/build-test-ubuntu-with-gcc5.sh | |
# Bazel sanity check | |
build-test-ubuntu-bazel: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install iceoryx dependencies and clang-tidy | |
uses: ./.github/actions/install-iceoryx-deps-and-clang | |
- run: ./tools/ci/build-test-ubuntu-bazel.sh | |
coverage-and-docs: | |
# prevent stuck jobs consuming runners for 6 hours | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
needs: pre-flight-check | |
steps: | |
- uses: actions/checkout@v3 | |
- run: ./tools/ci/coverage-and-docs.sh | |
- name: Archive generated doxygen | |
uses: actions/upload-artifact@v3 | |
with: | |
name: iceoryx-pdf | |
path: | | |
./build/doc/*.pdf | |
retention-days: 30 | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
file: ./lcov_results/unittest/lcov/iceoryx_lcov_result_unit.info | |
name: iceoryx | |
flags: unittests | |
fail_ci_if_error: false | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
file: ./lcov_results/unittest_timing/lcov/iceoryx_lcov_result_unit-timing.info | |
name: iceoryx | |
flags: unittests_timing | |
fail_ci_if_error: false |