[WIP] Merge develop/fetch branch #832
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
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
env: | |
DISPLAY: ':0.0' | |
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" |