diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 00000000..ab88da56 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,38 @@ +name: CMake + +on: + push: + branches: + - '**' + pull_request: + branches: + - '**' + +env: + BUILD_TYPE: Release + +jobs: + build: + name: ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04, ubuntu-20.04, ubuntu-18.04] + + steps: + - name: Install dependencies + run: | + DEBIAN_FRONTEND=noninteractive + sudo apt-get update + sudo apt-get -y install libopencv-dev git cmake software-properties-common + + - uses: actions/checkout@v2 + + - name: Configure CMake + run: | + cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + diff --git a/.github/workflows/ros1.yml b/.github/workflows/ros1.yml new file mode 100644 index 00000000..951e31a8 --- /dev/null +++ b/.github/workflows/ros1.yml @@ -0,0 +1,59 @@ +name: ros1 + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + name: Build on ros ${{ matrix.ros_distro }} and ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04, ubuntu-18.04] + include: + - os: ubuntu-20.04 + ros_distro: 'noetic' + - os: ubuntu-18.04 + ros_distro: 'melodic' + + steps: + - uses: ros-tooling/setup-ros@v0.2 + with: + required-ros-distributions: ${{ matrix.ros_distro }} + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get -y install ros-${{ matrix.ros_distro }}-cv-bridge + + - name: Setup catkin workspace + run: | + source /opt/ros/${{ matrix.ros_distro }}/setup.bash + mkdir -p ${{github.workspace}}/catkin_ws/src + cd ${{github.workspace}}/catkin_ws/src + catkin_init_workspace + cd .. + catkin_make + + - uses: actions/checkout@v2 + with: + path: 'catkin_ws/src/find_object_2d' + + - name: caktkin_make + run: | + source /opt/ros/${{ matrix.ros_distro }}/setup.bash + source ${{github.workspace}}/catkin_ws/devel/setup.bash + cd ${{github.workspace}}/catkin_ws + catkin_make -DSETUPTOOLS_DEB_LAYOUT=OFF + catkin_make install diff --git a/.github/workflows/ros2.yml b/.github/workflows/ros2.yml new file mode 100644 index 00000000..f5243fbf --- /dev/null +++ b/.github/workflows/ros2.yml @@ -0,0 +1,58 @@ + +name: ros2 + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + name: Build on ros2 ${{ matrix.ros_distro }} and ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + ros_distro: [foxy, galactic, humble] + include: + - ros_distro: 'foxy' + os: ubuntu-20.04 + - ros_distro: 'galactic' + os: ubuntu-20.04 + - ros_distro: 'humble' + os: ubuntu-22.04 + + steps: + - uses: ros-tooling/setup-ros@v0.4 + with: + required-ros-distributions: ${{ matrix.ros_distro }} + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get -y install ros-${{ matrix.ros_distro }}-cv-bridge + + - name: Setup ros2 workspace + run: | + source /opt/ros/${{ matrix.ros_distro }}/setup.bash + mkdir -p ${{github.workspace}}/ros2_ws/src + cd ${{github.workspace}}/ros2_ws + colcon build + + - uses: actions/checkout@v2 + with: + path: 'ros2_ws/src/find_object_2d' + + - name: colcon build + run: | + source /opt/ros/${{ matrix.ros_distro }}/setup.bash + cd ${{github.workspace}}/ros2_ws + colcon build --event-handlers console_direct+