|
1 | 1 | on: |
2 | 2 | push: |
3 | 3 | branches: |
4 | | - - master |
| 4 | + - ros2 |
5 | 5 | pull_request: |
6 | 6 |
|
7 | | -env: |
8 | | - DISPLAY: ':0.0' |
9 | | - |
10 | 7 | 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 }} |
140 | 10 | strategy: |
141 | 11 | fail-fast: false |
142 | 12 | matrix: |
143 | 13 | 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 |
152 | 26 | 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 }} |
0 commit comments