Skip to content

Commit 0a78d94

Browse files
committed
[ros2] add CI
1 parent 7e2af09 commit 0a78d94

3 files changed

Lines changed: 19 additions & 181 deletions

File tree

.github/workflows/config.yml

Lines changed: 19 additions & 181 deletions
Original file line numberDiff line numberDiff line change
@@ -1,192 +1,30 @@
11
on:
22
push:
33
branches:
4-
- master
4+
- ros2
55
pull_request:
66

7-
env:
8-
DISPLAY: ':0.0'
9-
107
jobs:
11-
ros:
12-
runs-on: ubuntu-latest
13-
continue-on-error: false
14-
strategy:
15-
fail-fast: false
16-
matrix:
17-
include:
18-
- ROS_DISTRO: indigo
19-
CONTAINER: jskrobotics/ros-ubuntu:14.04
20-
BEFORE_SCRIPT : "sudo pip install virtualenv==15.1.0"
21-
NOT_TEST_INSTALL: true
22-
- ROS_DISTRO: kinetic
23-
CONTAINER: ubuntu:16.04
24-
BEFORE_SCRIPT: "pip install --user matplotlib==2.2.5"
25-
- ROS_DISTRO: melodic
26-
CONTAINER: ubuntu:18.04
27-
- ROS_DISTRO: noetic
28-
CONTAINER: ubuntu:20.04
29-
- ROS_DISTRO: noetic
30-
CONTAINER: ubuntu:20.04
31-
BEFORE_SCRIPT: "pip3 install -U --user pyyaml"
32-
33-
container:
34-
image: ${{ matrix.CONTAINER }}
35-
volumes:
36-
- /tmp/node20:/__e/node20
37-
options: --user root
38-
39-
steps:
40-
- name: Install latest git ( use sudo for ros-ubuntu )
41-
run: |
42-
[ -e /etc/apt/sources.list.d/ubuntu-esm-infra-$(lsb_release -cs).list ] && sudo rm /etc/apt/sources.list.d/ubuntu-esm-infra-$(lsb_release -cs).list ## fix Err https://esm.ubuntu.com trusty-infra-security/main amd64 Packages, gnutls_handshake() failed: Handshake failed
43-
(apt-get update && apt-get install -y sudo) || echo "OK"
44-
sudo apt-get update
45-
sudo apt-get install -y software-properties-common
46-
sudo apt-get update
47-
sudo -E add-apt-repository -y ppa:git-core/ppa
48-
sudo apt-get update
49-
sudo apt-get install -y git
50-
51-
- name: work around permission issue # https://github.com/actions/checkout/issues/760#issuecomment-1097501613
52-
run: |
53-
set -x
54-
export USER=$(whoami)
55-
if [ "${{ matrix.CONTAINER }}" = "jskrobotics/ros-ubuntu:14.04" ]; then
56-
git config --global --add safe.directory $GITHUB_WORKSPACE || echo "OK" # Show 'could not lock config file /github/home/.gitconfig: Permission denied', but it is ok
57-
sudo mkdir -p /__w/
58-
sudo chmod 777 -R /__w/
59-
sudo chown -R $USER $HOME
60-
sudo mkdir -p /__w/_temp/_runner_file_commands/
61-
sudo chown -R $USER /__w/_temp/_runner_file_commands/
62-
# sudo mkdir -p /home/runner/work/_temp/_github_workflow/
63-
# sudo chown -R $USER $HOME /home/runner/work/_temp/_github_workflow/
64-
# ls -al /home/runner/work/_temp/_github_workflow/
65-
else
66-
git config --global --add safe.directory $GITHUB_WORKSPACE
67-
fi
68-
69-
- name: Try to replace `node` with an glibc 2.17
70-
shell: bash
71-
run: |
72-
if [ "${{ matrix.CONTAINER }}" = "jskrobotics/ros-ubuntu:14.04" ]; then
73-
export USER=$(whoami)
74-
sudo chmod 777 -R /__e/node20
75-
sudo chown -R $USER /__e/node20
76-
fi
77-
ls -lar /__e/node20 &&
78-
sudo apt-get install -y curl &&
79-
curl -Lo /tmp/node.tar.gz https://unofficial-builds.nodejs.org/download/release/v20.17.0/node-v20.17.0-linux-x64-glibc-217.tar.gz &&
80-
cd /__e/node20 &&
81-
tar -x --strip-components=1 -f /tmp/node.tar.gz &&
82-
ls -lar /__e/node20/bin/
83-
84-
- name: Chcekout
85-
uses: actions/checkout@v3.0.2
86-
with:
87-
submodules: true
88-
89-
- name: Cache Download Data
90-
uses: actions/cache@v4
91-
with:
92-
path: /github/home/.ros/data/jsk_rviz_plugins
93-
key: jsk_rviz_plugins
94-
95-
- name: Start X server
96-
run: |
97-
if [[ "${{ matrix.CONTAINER }}" =~ "jskrobotics/ros-ubuntu:14.04" ]]; then exit 0; fi
98-
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections || echo "failing on ros-ubuntu is OK" # set non interactive tzdata https://stackoverflow.com/questions/8671308/non-interactive-method-for-dpkg-reconfigure-tzdata
99-
sudo apt-get -y -qq install mesa-utils x11-xserver-utils xserver-xorg-video-dummy wget
100-
export DISPLAY=:0
101-
wget https://raw.githubusercontent.com/jsk-ros-pkg/jsk_travis/master/dummy.xorg.conf -O /tmp/dummy.xorg.conf
102-
sudo Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile /tmp/xorg.log -config /tmp/dummy.xorg.conf $DISPLAY &
103-
sleep 3 # wait x server up
104-
export QT_X11_NO_MITSHM=1 # http://wiki.ros.org/docker/Tutorials/GUI
105-
xhost +local:root
106-
shell: bash
107-
108-
- name: Start X server (for 14.04)
109-
run: |
110-
if [[ "${{ matrix.CONTAINER }}" =~ "jskrobotics/ros-ubuntu:14.04" ]]; then
111-
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections || echo "failing on ros-ubuntu is OK" # set non interactive tzdata https://stackoverflow.com/questions/8671308/non-interactive-method-for-dpkg-reconfigure-tzdata
112-
export DISPLAY=:0
113-
sudo apt-get install -y xvfb libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0
114-
sudo apt-get install -y x11-xserver-utils # for xhost
115-
sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
116-
sleep 3 # wait x server up
117-
export QT_X11_NO_MITSHM=1 # http://wiki.ros.org/docker/Tutorials/GUI
118-
xhost +local:root
119-
fi
120-
shell: bash
121-
122-
- name: Run jsk_travis
123-
uses: jsk-ros-pkg/jsk_travis@master
124-
with:
125-
ROS_PARALLEL_JOBS : "-j8"
126-
CATKIN_PARALLEL_JOBS : "-p8"
127-
ROS_PARALLEL_TEST_JOBS : "-j8"
128-
CATKIN_PARALLEL_TEST_JOBS : "-p8"
129-
BEFORE_SCRIPT : ${{ matrix.BEFORE_SCRIPT }}
130-
ROS_DISTRO : ${{ matrix.ROS_DISTRO }}
131-
USE_DEB : ${{ matrix.USE_DEB }}
132-
NOT_TEST_INSTALL : ${{ matrix.NOT_TEST_INSTALL }}
133-
TEST_PKGS : ${{ matrix.TEST_PKGS }}
134-
EXTRA_DEB : ${{ matrix.EXTRA_DEB }}
135-
136-
# ROS-O setup https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
137-
ros-o:
138-
runs-on: ubuntu-latest
139-
8+
ros2:
9+
runs-on: ${{ matrix.runner }}
14010
strategy:
14111
fail-fast: false
14212
matrix:
14313
include:
144-
- DISTRO: ubuntu:22.04
145-
ROS_REPOSITORY_URL: https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository
146-
147-
container: ${{ matrix.DISTRO }}
148-
149-
env:
150-
DEBIAN_FRONTEND : noninteractive
151-
14+
- runner: ubuntu-latest
15+
ros_distro: jazzy
16+
- runner: ubuntu-24.04-arm
17+
ros_distro: jazzy
18+
- runner: ubuntu-latest
19+
ros_distro: lyrical
20+
- runner: ubuntu-24.04-arm
21+
ros_distro: lyrical
22+
- runner: ubuntu-latest
23+
ros_distro: rolling
24+
- runner: ubuntu-24.04-arm
25+
ros_distro: rolling
15226
steps:
153-
- name: Chcekout Source
154-
uses: actions/checkout@v3.0.2
155-
156-
- name: Setup ROS-O deb repository
157-
run: |
158-
set -x
159-
apt update && apt install -qq -y ca-certificates
160-
echo "deb [trusted=yes] ${{ matrix.ROS_REPOSITORY_URL }}/ ./" | tee /etc/apt/sources.list.d/ros-o-builder.list
161-
apt update
162-
apt install -qq -y python3-rosdep2
163-
echo "yaml ${{ matrix.ROS_REPOSITORY_URL }}/local.yaml debian" | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
164-
rosdep update
165-
166-
- name: Setup catkin-tools
167-
run: |
168-
set -x
169-
# setup catkin tools
170-
apt install -qq -y python3-pip
171-
pip3 install catkin-tools==0.9.4
172-
# setup build tools
173-
apt install -qq -y cmake build-essential catkin ros-one-rosbash
174-
175-
- name: Setup Workspace
176-
run: |
177-
source /opt/ros/one/setup.bash
178-
set -x
179-
# setup workspace
180-
mkdir -p ~/ws/src
181-
cd ~/ws/src
182-
ln -sf $GITHUB_WORKSPACE .
183-
rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
184-
shell: bash
185-
186-
- name: Compile Packages
187-
run: |
188-
source /opt/ros/one/setup.bash
189-
set -x
190-
cd ~/ws/
191-
catkin build --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
192-
shell: bash
27+
- uses: actions/checkout@v7
28+
- uses: ros-industrial/industrial_ci@master
29+
env:
30+
ROS_DISTRO: ${{ matrix.ros_distro }}

jsk_interactive_markers/AMENT_IGNORE

Whitespace-only changes.

jsk_visualization/AMENT_IGNORE

Whitespace-only changes.

0 commit comments

Comments
 (0)