config.yml: fix typo #31
Workflow file for this run
This file contains hidden or 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: false | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - ROS_DISTRO: indigo | |
| CONTAINER: jskrobotics/ros-ubuntu:14.04 | |
| NOT_TEST_INSTALL: true | |
| - ROS_DISTRO: kinetic | |
| CONTAINER: jskrobotics/ros-ubuntu:16.04 | |
| - ROS_DISTRO: melodic | |
| CONTAINER: jskrobotics/ros-ubuntu:18.04 | |
| - ROS_DISTRO: noetic | |
| CONTAINER: jskrobotics/ros-ubuntu:20.04 | |
| container: | |
| image: ${{ matrix.CONTAINER }} | |
| volumes: | |
| - /tmp/node20:/__e/node20 | |
| steps: | |
| - name: Install latest git ( use sudo for ros-ubuntu ) | |
| run: | | |
| [ -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 | |
| (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 -E 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) | |
| sudo chown -R $USER $GITHUB_WORKSPACE | |
| 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/ | |
| ls -lar /__e/node20 && | |
| sudo apt-get install -y curl && | |
| 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 && | |
| cd /__e/node20 && | |
| sudo tar -x --strip-components=1 -f /tmp/node.tar.gz && | |
| ls -lar /__e/node20/bin/ | |
| - name: Chcekout | |
| 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' | 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 | |
| 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: | |
| ROS_PARALLEL_JOBS : "-j8" | |
| CATKIN_PARALLEL_JOBS : "-p8" | |
| ROS_PARALLEL_TEST_JOBS : "-j1" | |
| CATKIN_PARALLEL_TEST_JOBS : "-p1" | |
| ROS_DISTRO : ${{ matrix.ROS_DISTRO }} | |
| USE_DEB : ${{ matrix.USE_DEB }} | |
| NOT_TEST_INSTALL : ${{ matrix.NOT_TEST_INSTALL }} | |
| TEST_PKGS : ${{ matrix.TEST_PKGS }} | |
| EXTRA_DEB : ${{ matrix.EXTRA_DEB }} | |
| # ROS-O setup for techfak https://ros.packages.techfak.net/ | |
| # note that v4hn uses ROS_DISTRO=one and techfak uses ROS_DISTRO | |
| ros-o: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| DEB_DISTRO: [22.04, 24.04] | |
| ARCH: [x64] # arm64 | |
| runs-on: ${{ matrix.ARCH == 'x64' && format('ubuntu-{0}', matrix.DEB_DISTRO) || (matrix.ARCH == 'arm64' && format('ubuntu-{0}-arm', matrix.DEB_DISTRO) || format('ubuntu-{0}', matrix.DEB_DISTRO)) }} | |
| env: | |
| DEBIAN_FRONTEND : noninteractive | |
| steps: | |
| - name: Chcekout Source | |
| uses: actions/[email protected] | |
| - name: Setup ROS-O deb repository | |
| run: | | |
| set -x | |
| sudo apt update && sudo apt install -qq -y ca-certificates git | |
| if [[ "${{ matrix.DEB_DISTRO }}" == "22.04" ]]; then export CODE_NAME="jammy"; fi | |
| if [[ "${{ matrix.DEB_DISTRO }}" == "24.04" ]]; then export CODE_NAME="noble"; fi | |
| echo "deb [trusted=yes] https://ros.packages.techfak.net $CODE_NAME-testing main" | sudo tee /etc/apt/sources.list.d/ros-o-builder.list | |
| ## | |
| # https://github.com/v4hn/ros-deb-builder-action/blob/b7c0ed93fde3a86b5b1027bf8f7145cad6067c90/prepare.sh#L27-L28 | |
| # Canonical dropped the Debian ROS packages from 24.04 for political reasons. Wow. | |
| if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" && "${{ matrix.DISTRO }}" == "ubuntu:24.04" ]]; then apt install -y software-properties-common retry && retry -d 50,10,30,300 -t 12 add-apt-repository -y ppa:v-launchpad-jochen-sprickerhof-de/ros; fi | |
| ## | |
| sudo apt update | |
| # Do not install python3-rosdep2, which is an outdated version of rosdep shipped via the Ubuntu repositories (instead of ROS)! | |
| sudo apt install -qq -y python3-rosdep | |
| sudo rosdep init | |
| echo "yaml https://ros.packages.techfak.net/ros-one.yaml ubuntu" | sudo tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list | |
| rosdep update | |
| shell: bash | |
| - name: Setup catkin-tools | |
| run: | | |
| set -x | |
| # setup catkin tools | |
| sudo apt install -qq -y python3-pip | |
| sudo apt install -qq -y ros-one-catkin python3-catkin-tools | |
| # setup build tools | |
| sudo apt install -qq -y cmake build-essential ros-one-rosbash | |
| shell: bash | |
| - name: Setup Workspace | |
| run: | | |
| source /opt/ros/one/setup.bash | |
| set -x | |
| # setup workspace | |
| mkdir -p ~/ws/src | |
| cd ~/ws/src | |
| ln -sf $GITHUB_WORKSPACE . | |
| rosdep install -qq -r -y --from-path . --ignore-src || echo "OK" | |
| # check all system packages are able to install, because ROS-O build deb files that needs all packages | |
| PIP_BREAK_SYSTEM_PACKAGES=1 rosdep install -qq --simulate -y --from-path . --ignore-src -t exec -t buildtool_export -t buildtool -t build -t build_export | tee rosdep-install.sh | |
| # catkin_tools is not available on v4hn/jammy | |
| sed 's/apt-get install/apt-get -y install/;/install ros-one/s/^/#/;/pip3 install/s/^/#/' rosdep-install.sh | bash -xe | |
| shell: bash | |
| - name: Compile Packages | |
| run: | | |
| source /opt/ros/one/setup.bash | |
| set -x | |
| cd ~/ws/ | |
| catkin build --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }} | |
| shell: bash |