Merge pull request #1317 from loco-3d/pre-commit-ci-update-config #338
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 | |
# This determines when this workflow is run | |
on: | |
push: | |
paths-ignore: | |
- 'doc/**' | |
- '.gitlab-ci.yml' | |
- '.gitignore' | |
- '.pre-commit-config.yaml' | |
- '*.md' | |
- 'LICENSE' | |
- 'pyproject.toml' | |
- 'package.xml' | |
- 'dependencies.rosintall' | |
pull_request: | |
paths-ignore: | |
- 'doc/**' | |
- '.gitlab-ci.yml' | |
- '.gitignore' | |
- '.pre-commit-config.yaml' | |
- '*.md' | |
- 'LICENSE' | |
- 'pyproject.toml' | |
- 'package.xml' | |
- 'dependencies.rosintall' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
CI: | |
strategy: | |
fail-fast: false | |
matrix: | |
env: | |
- {name: "(noetic, Release)", ROS_DISTRO: noetic} | |
# - {name: "(noetic, clang, multi-threading, Release)", ROS_DISTRO: noetic, ADDITIONAL_DEBS: "clang libomp-dev", CC: clang, CXX: clang++, CMAKE_ARGS: "-DBUILD_WITH_MULTITHREADS=ON -DBUILD_WITH_NTHREADS=2"} | |
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 | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# This step will fetch/store the directory used by ccache before/after the ci run | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ccache-${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}-${{ github.sha }} | |
restore-keys: ccache-${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}- | |
# Run industrial_ci | |
- uses: 'ros-industrial/industrial_ci@master' | |
env: ${{ matrix.env }} |