add ci config #11
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: Humble_test_with_nativeROS_String | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
types: [opened, synchronize, labeled] | |
jobs: | |
ci: | |
runs-on: ${{ matrix.os }} | |
if: | | |
((github.event.action == 'labeled') && (github.event.label.name == 'TESTING') && (github.base_ref == 'main' )) || | |
((github.event.action == 'synchronize') && (github.base_ref == 'main') && contains(github.event.pull_request.labels.*.name, 'TESTING')) || | |
(github.ref_name == 'main') | |
container: | |
image: osrf/ros:${{ matrix.ros_distribution }}-desktop | |
timeout-minutes: 3 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04] | |
ros_distribution: [humble] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: update | |
run: sudo apt-get update | |
- name: setup and install tools | |
run: > | |
sudo apt-get install -y git wget build-essential gcc g++ libssl-dev libreadline-dev | |
zlib1g-dev make autoconf automake cmake pkg-config curl net-tools netcat python3-jinja2 | |
- name: Clone Test Stub | |
uses: actions/checkout@v3 | |
with: | |
repository: mROS-base/mros2-host-examples | |
path: ws_host/src/mros2-host-examples | |
- name: Run IP update script | |
run: | | |
chmod +x update_ip.sh | |
./update_ip.sh | |
- name: Build mROS | |
shell: bash | |
run: | | |
bash build.bash clean | |
bash build.bash all test_echoback_string | |
- name: Build Native ROS | |
shell: bash | |
run: | | |
cd ws_host/ | |
source /opt/ros/humble/setup.bash | |
colcon build --packages-select mros2_echoreply_string | |
- name: Run mROS and Native ROS | |
shell: bash | |
run : | | |
./cmake_build/mros2-posix & | |
mros_pid=$! # mROSのプロセスIDを取得 | |
# Native ROSをバックグラウンドで実行 | |
cd ws_host/ | |
source /opt/ros/humble/setup.bash | |
source install/setup.bash | |
ros2 run mros2_echoreply_string echoreply_node & | |
# mROSが終了するまで待つ | |
wait $mros_pid | |
mros_status=$? | |
# 結果に基づいてCIの成否を判断 | |
if [ $mros_status -eq 0 ] ;then | |
echo "Succeed pub/sub test process between mros2 and Native ROS" | |
exit 0 | |
else | |
echo "Fail pub/sub test process between mros2 and Native ROS" | |
exit 1 | |
fi |