Extending CI jobs #1
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
name: ROS-CI | |
# This determines when this workflow is run | |
on: [push, pull_request] # on all pushes and PRs | |
jobs: | |
CI: | |
strategy: | |
matrix: | |
env: | |
# ROS noetic | |
- {name: "CI (noetic, g++, Release)", ROS_DISTRO: noetic} | |
- {name: "CI (noetic, clang, Release)", ROS_DISTRO: noetic, ADDITIONAL_DEBS: clang, CC: clang, CXX: clang++} | |
- {name: "CI (noetic, clang, Release, multi-threading)", ROS_DISTRO: noetic, ADDITIONAL_DEBS: "clang libomp-dev", CC: clang, CXX: clang++, CMAKE_ARGS: "-DBUILD_WITH_MULTITHREADS=ON -DBUILD_WITH_NTHREADS=2"} | |
- {name: "CI (noetic, clang, Debug)", ROS_DISTRO: noetic, ADDITIONAL_DEBS: clang, CC: clang, CXX: clang++, CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug"} | |
# ROS humble | |
- {name: "CI (noetic, g++, Release)", ROS_DISTRO: humble} | |
- {name: "CI (noetic, clang, Release)", ROS_DISTRO: humble, ADDITIONAL_DEBS: clang, CC: clang, CXX: clang++} | |
- {name: "CI (noetic, clang, Release, multi-threading)", ROS_DISTRO: humble, ADDITIONAL_DEBS: "clang libomp-dev", CC: clang, CXX: clang++, CMAKE_ARGS: "-DBUILD_WITH_MULTITHREADS=ON -DBUILD_WITH_NTHREADS=2"} | |
- {name: "CI (noetic, clang, Debug)", ROS_DISTRO: humble, ADDITIONAL_DEBS: clang, CC: clang, CXX: clang++, CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug"} | |
# Format check | |
#- {name: "Format check", ROS_DISTRO: noetic, CLANG_FORMAT_CHECK: file, CLANG_FORMAT_VERSION: "6.0", BEFORE_RUN_CLANG_FORMAT_CHECK: "wget https://raw.githubusercontent.com/Gepetto/linters/master/.clang-format-6.0 -O /tmp/clang_format_check/crocoddyl/.clang-format", ADDITIONAL_DEBS: wget} | |
name: ${{ matrix.env.name }} | |
env: | |
CCACHE_DIR: /github/home/.ccache # Enable ccache | |
UPSTREAM_WORKSPACE: dependencies.rosinstall # to build example-robot-data from source as it's not released via the ROS buildfarm | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
# The following is a work-around for ROS tooling in conjunction with jrl-cmakemodules: | |
# - catkin_make_isolated has issues with Industrial-CI right now | |
# - colcon cannot find example-robot-data's python bindings due to ROS1 workspace integration hooks | |
# - catkin_tools correctly finds example-robot-data in the upstream_ws, but does not execute the 'run_tests' target | |
# as catkin-tools performs tests as '--catkin-make-args' instead of '--make-args' as colcon and catkin_make_isolated | |
# The work-around is thus to use catkin_tools for building and sourcing, and to manually specify execution of the test | |
# target after completion of the regular test target. The output of this step does affect the output of the CI process. | |
# Note, this does not affect projects that do not have pure CMake projects in their upstream_ws. | |
BUILDER: catkin_tools | |
AFTER_RUN_TARGET_TEST: 'source /root/target_ws/install/setup.bash && cd /root/target_ws/build/crocoddyl && env && make test' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
# This step will fetch/store the directory used by ccache before/after the ci run | |
- uses: actions/cache@v2 | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ccache-${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }} | |
# Run industrial_ci - use fork until awaits https://github.com/ros-industrial/industrial_ci/issues/767 is resolved | |
- uses: 'wxmerkt/industrial_ci@topic/clang-format-check-in-deterministic-location' | |
env: ${{ matrix.env }} | |
# # Run industrial_ci | |
# - uses: 'ros-industrial/industrial_ci@master' | |
# env: ${{ matrix.env }} |