Skip to content

ros-o support

ros-o support #873

Workflow file for this run

on:
push:
branches:
- master
pull_request:
env:
DISPLAY: ':0.0'
# workaround required for checkout@v3, https://github.com/actions/checkout/issues/1590
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
ros:
runs-on: ubuntu-latest
# continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
include:
- ROS_DISTRO: indigo
CONTAINER: jskrobotics/ros-ubuntu:14.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
NOT_TEST_INSTALL : true
BEFORE_SCRIPT : "sudo pip install packaging==17.1; for name in ffha libsiftfast nlopt julius julius_ros downward assimp_devel google_chat_ros; do echo \\$name; find $GITHUB_WORKSPACE -iname \\$name -exec touch {}/CATKIN_IGNORE \\; ; ls -al \\$(find -iname \\$name)/; done" # Skip large packagses
USE_DEB: false
- ROS_DISTRO: kinetic
CONTAINER: ubuntu:16.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
EXTRA_DEB : "python-lxml"
BEFORE_SCRIPT : "sudo add-apt-repository -y ppa:jblgf0/python; sudo apt-get update; sudo apt-get install -y python3.6 python3.6-venv libpython3.6-dev; sudo ln -sf python3.6 /usr/bin/python3; ls -al /usr/bin/python3; python3 --version; python3 -v -m venv /tmp/v"
- ROS_DISTRO: melodic
CONTAINER: ubuntu:18.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
- ROS_DISTRO: noetic
CONTAINER: ubuntu:20.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
container: ${{ matrix.CONTAINER }}
steps:
- name: Install latest git ( use sudo for ros-ubuntu )
run: |
(apt-get update && apt-get install -y sudo) || echo "OK"
sudo apt-get update && sudo apt-get install -y software-properties-common && sudo apt-get update && sudo add-apt-repository -y ppa:git-core/ppa && sudo apt-get update && sudo apt-get install -y git
- name: work around permission issue # https://github.com/actions/checkout/issues/760#issuecomment-1097501613
run: |
set -x
export USER=$(whoami)
if [ "${{ matrix.CONTAINER }}" = "jskrobotics/ros-ubuntu:14.04" ]; then
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
sudo mkdir -p /__w/
sudo chmod 777 -R /__w/
sudo chown -R $USER $HOME
# sudo mkdir -p /home/runner/work/_temp/_github_workflow/
# sudo chown -R $USER $HOME /home/runner/work/_temp/_github_workflow/
# ls -al /home/runner/work/_temp/_github_workflow/
else
git config --global --add safe.directory $GITHUB_WORKSPACE
fi
- name: Checkout
uses: actions/[email protected]
- name: Start X server
run: |
if [[ "${{ matrix.CONTAINER }}" =~ "jskrobotics/ros-ubuntu:14.04" ]]; then exit 0; fi
echo 'debconf debconf/frontend select Noninteractive' | 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
sudo apt-get -y -qq install mesa-utils x11-xserver-utils xserver-xorg-video-dummy wget
export DISPLAY=:0
wget https://raw.githubusercontent.com/jsk-ros-pkg/jsk_travis/master/dummy.xorg.conf -O /tmp/dummy.xorg.conf
sudo Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile /tmp/xorg.log -config /tmp/dummy.xorg.conf $DISPLAY &
sleep 3 # wait x server up
export QT_X11_NO_MITSHM=1 # http://wiki.ros.org/docker/Tutorials/GUI
xhost +local:root
shell: bash
- name: Run jsk_travis
uses: jsk-ros-pkg/jsk_travis@master
with:
# darty hack, jsk_travis runs catkin build --make-args $ROS_PARALLEL_JOBS --
ROS_PARALLEL_JOBS : ${{ matrix.ROS_PARALLEL_JOBS }} LANG=C.UTF-8 LC_ALL=C.UTF-8
CATKIN_PARALLEL_JOBS : ${{ matrix.CATKIN_PARALLEL_JOBS }}
ROS_PARALLEL_TEST_JOBS : ${{ matrix.ROS_PARALLEL_TEST_JOBS }}
CATKIN_PARALLEL_TEST_JOBS : ${{ matrix.CATKIN_PARALLEL_TEST_JOBS }}
ROS_DISTRO : ${{ matrix.ROS_DISTRO }}
USE_DEB : ${{ matrix.USE_DEB }}
NOT_TEST_INSTALL : ${{ matrix.NOT_TEST_INSTALL }}
TEST_PKGS : ${{ matrix.TEST_PKGS }}
BEFORE_SCRIPT : ${{ matrix.BEFORE_SCRIPT }}
EXTRA_DEB : ${{ matrix.EXTRA_DEB }}
kinetic_i386:
runs-on: ubuntu-latest
name: kinetic_i386
container: i386/ubuntu:16.04
steps:
- name: Install latest git ( use sudo for ros-ubuntu )
run: apt-get update && apt-get install -y software-properties-common && apt-get update && add-apt-repository -y ppa:git-core/ppa && apt-get update && apt-get install -y git
- name: Checkout
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
git clone --depth=1 $GITHUB_SERVER_URL/$GITHUB_REPOSITORY $GITHUB_WORKSPACE
cd $GITHUB_WORKSPACE
git checkout -qf $GITHUB_SHA || (git fetch -q origin +$GITHUB_REF; git checkout -qf FETCH_HEAD)
git submodule update --init .travis
- name: Run jsk_travis
uses: jsk-ros-pkg/jsk_travis@master
with:
EXTRA_DEB : "python-lxml"
ROS_DISTRO : kinetic
ROS_PARALLEL_JOBS : "LANG=C.UTF-8 LC_ALL=C.UTF-8"
ROS_PARALLEL_TEST_JOBS : "-j8"
CATKIN_PARALLEL_JOBS: "-i"
ROSDEP_ADDITIONAL_OPTIONS : "-n -q -r --ignore-src --skip-keys=python-google-cloud-texttospeech-pip --skip-keys=python-dialogflow-pip" # Skip installation of grpcio by pip because it causes error
# https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/237 : (Note that pip==21.0.1 is incompatible with python 2.x)
BEFORE_SCRIPT : "sudo pip install virtualenv==15.1.0; sudo add-apt-repository -y ppa:jblgf0/python; sudo apt-get update; sudo apt-get install -y python3.6 python3.6-venv libpython3.6-dev; sudo ln -sf python3.6 /usr/bin/python3"
## need to setup runners from https://github.com/jsk-ros-pkg/jsk_3rdparty/settings/actions/runners
arm:
runs-on: ['self-hosted', 'Linux', 'ARM64']
strategy:
fail-fast: false
matrix:
include:
- ROS_DISTRO: kinetic
CONTAINER: arm64v8/ros:kinetic-perception-xenial
EXTRA_DEB : "python-lxml"
- ROS_DISTRO: melodic
CONTAINER: arm64v8/ros:melodic-perception-bionic
- ROS_DISTRO: noetic
CONTAINER: arm64v8/ros:noetic-perception-focal
steps:
- uses: actions/[email protected]
with:
submodules: 'true'
path: ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }}
- name: Skip packagse
run: |
cd ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }} && for name in ffha libsiftfast nlopt downward assimp_devel google_chat_ros; do echo $name; find -iname $name -exec touch {}/CATKIN_IGNORE \; ; ls -al $(find -iname $name)/; done
- name: Run commands
run: |
cd ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }}
export EXTRA_DEB=${{ matrix.EXTRA_DEB }}
export ROS_DISTRO=${{ matrix.ROS_DISTRO }}
export ROS_PARALLEL_TEST_JOBS="-j2"
export CATKIN_PARALLEL_JOBS="-i -j2"
export ROSDEP_ADDITIONAL_OPTIONS="-n -q -r --ignore-src --skip-keys=python-google-cloud-texttospeech-pip --skip-keys=python-dialogflow-pip" # Skip installation of grpcio by pip because it causes error
export BEFORE_SCRIPT="sudo pip install virtualenv==15.1.0"
export USE_TRAVIS=true
export USE_DOCKER=false
export DOCKER_IMAGE=${{ matrix.CONTAINER }}
export NOT_TEST_INSTALL=true
export ROS_PARALLEL_JOBS="-j8 --make-args LANG=C.UTF-8 LC_ALL=C.UTF-8"
set +o nounset
export CI_SOURCE_PATH=$(pwd)
export REPOSITORY_NAME=${PWD##*/}
docker pull $DOCKER_IMAGE || true
docker run --rm -v $HOME:$HOME -v $HOME/.ccache:$HOME/.ccache/ -v $HOME/.cache/pip:$HOME/.cache/pip/ \
$DOCKER_XSERVER_OPTIONS \
-e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_JOB_ID -e TRAVIS_OS_NAME -e TRAVIS_PULL_REQUEST -e TRAVIS_REPO_SLUG \
-e GITHUB_RUN_ID \
-e CI_SOURCE_PATH -e HOME -e REPOSITORY_NAME \
-e BUILD_PKGS -e TARGET_PKGS -e TEST_PKGS \
-e BEFORE_SCRIPT -e BUILDER -e EXTRA_DEB -e USE_DEB \
-e ROS_DISTRO -e ROS_LOG_DIR -e ROS_REPOSITORY_PATH -e ROSWS \
-e CATKIN_TOOLS_BUILD_OPTIONS -e CATKIN_TOOLS_CONFIG_OPTIONS \
-e CATKIN_PARALLEL_JOBS -e CATKIN_PARALLEL_TEST_JOBS \
-e ROS_PARALLEL_JOBS -e ROS_PARALLEL_TEST_JOBS -e ROS_PYTHON_VERSION \
-e ROSDEP_ADDITIONAL_OPTIONS -e ROSDEP_UPDATE_QUIET \
-e SUDO_PIP -e USE_PYTHON_VIRTUALENV \
-e NOT_TEST_INSTALL -e DEBUG_TRAVIS_PYTHON \
-t $DOCKER_IMAGE bash -c 'sudo apt-get update -y && sudo apt-get install -q -y git sudo wget curl && cd $CI_SOURCE_PATH/ && .travis/travis.sh'
- name: Cleanup workspace
if: always()
run: |
rm -fr ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }} || echo "OK"