fix GA: runs-on ubuntu-latest and use container for 'catkin' check #128
Workflow file for this run
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: | |
linux: | |
strategy: | |
matrix: | |
include: | |
- DOCKER_IMAGE: ubuntu:trusty | |
- DOCKER_IMAGE: ubuntu:xenial | |
- DOCKER_IMAGE: ubuntu:bionic | |
- DOCKER_IMAGE: ubuntu:bionic | |
COLLISION_LIB: PQP | |
- DOCKER_IMAGE: ubuntu:bionic | |
COLLISION_LIB: BULLET | |
- DOCKER_IMAGE: ubuntu:focal | |
- DOCKER_IMAGE: debian:stretch | |
- DOCKER_IMAGE: osrf/ubuntu_armhf:trusty | |
- DOCKER_IMAGE: osrf/ubuntu_armhf:xenial | |
- DOCKER_IMAGE: osrf/ubuntu_arm64:trusty | |
- DOCKER_IMAGE: osrf/ubuntu_arm64:xenial | |
- DOCKER_IMAGE: arm64v8/ubuntu:bionic | |
- DOCKER_IMAGE: arm64v8/ubuntu:focal | |
- DOCKER_IMAGE: osrf/debian_arm64:stretch | |
fail-fast: false | |
runs-on: ubuntu-latest | |
timeout-minutes: 90 | |
name: linux | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Run test | |
shell: bash | |
run: | | |
set -x | |
export CI_SOURCE_PATH=$(pwd) | |
export REPOSITORY_NAME=${PWD##*/} | |
export TRAVIS_BRANCH=${GITHUB_REF#refs/heads/} | |
export TRAVIS_OS_NAME=linux | |
export DOCKER_IMAGE=${{matrix.DOCKER_IMAGE}} | |
if [[ "$DOCKER_IMAGE" == *"arm"* ]]; then sudo apt-get install -y -qq qemu-user-static git; fi | |
if [[ "$DOCKER_IMAGE" == *"arm64v8"* ]]; then export QEMU_VOLUME="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static"; fi # | |
echo "Testing branch $TRAVIS_BRANCH of $REPOSITORY_NAME" | |
docker run --rm $QEMU_VOLUME -v $CI_SOURCE_PATH:$CI_SOURCE_PATH -e "DOCKER_IMAGE=$DOCKER_IMAGE" -e "COLLISION_LIB=$COLLISION_LIB" -e "CI_SOURCE_PATH=$CI_SOURCE_PATH" -e "HOME=$HOME" -t $DOCKER_IMAGE sh -c "cd $CI_SOURCE_PATH; ./.travis.sh" | |
catkin: | |
runs-on: ubuntu-latest | |
container: ubuntu:18.04 | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Apt | |
run: | | |
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections | |
apt-get update -qq | |
apt-get install -qq -y lsb-release wget gnupg2 # necessary for catkin-pkg to be installable | |
apt-get install -qq -y dpkg # necessary for catkin-pkg to be installable | |
echo "Testing branch $GITHUB_REF of $GITHUB_REPOSITORY" | |
sh -c 'echo "deb http://packages.ros.org/ros-shadow-fixed/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' | |
wget http://packages.ros.org/ros.key -O - | apt-key add - | |
apt-get update -qq | |
apt-get install -qq -y python-catkin-tools python-rosdep | |
apt-get install -qq -y build-essential git ros-melodic-rosbash ros-melodic-rospack | |
- name: Setup Src | |
shell: bash | |
run: | | |
export CI_SOURCE_PATH=$(pwd) | |
mkdir -p ~/catkin_ws/src | |
cd ~/catkin_ws/src | |
# checkout euslisp | |
git clone --depth 1 https://github.com/tork-a/euslisp-release euslisp | |
for file in CMakeLists.txt cmake/euslisp-extras.cmake.in env-hooks/99.euslisp.sh.in; do | |
wget https://raw.githubusercontent.com/tork-a/euslisp-release/master/patches/${file} -O euslisp/${file} | |
done | |
wget https://raw.githubusercontent.com/tork-a/euslisp-release/release/melodic/euslisp/package.xml -O euslisp/package.xml | |
# checkout jskeus | |
cp -r ${CI_SOURCE_PATH} ./jskeus | |
wget https://raw.githubusercontent.com/tork-a/jskeus-release/release/melodic/jskeus/package.xml -O jskeus/package.xml | |
wget https://raw.githubusercontent.com/tork-a/jskeus-release/master/patches/CMakeLists.txt -O jskeus/CMakeLists.txt | |
# rosdep install | |
cd .. | |
rosdep init | |
rosdep update | |
rosdep install -y -r --rosdistro melodic --from-paths src --ignore-src | |
- name: Build | |
shell: bash | |
run: | | |
source /opt/ros/melodic/setup.bash | |
cd ~/catkin_ws | |
catkin build -v -i --make-args VERBOSE=1 | |
- name: Test | |
shell: bash | |
run: | | |
cd ~/catkin_ws | |
ls -al devel | |
source devel/setup.bash | |
env | |
cd devel/share/euslisp | |
find jskeus/irteus/test -iname "*.l" | grep -v unittest.l | xargs -n1 irteusgl | |
- name: Cleanup | |
shell: bash | |
run: | | |
source /opt/ros/melodic/setup.bash | |
cd ~/catkin_ws | |
catkin clean --yes | |
- name: Build Install | |
shell: bash | |
run: | | |
source /opt/ros/melodic/setup.bash | |
cd ~/catkin_ws | |
catkin config --install | |
catkin build -v -i --make-args VERBOSE=1 | |
doc: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Run test | |
shell: bash | |
run: | | |
set -x | |
sudo apt-get install -y -qq git make gcc g++ libjpeg-dev libxext-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev libpq-dev libpng-dev xfonts-100dpi xfonts-75dpi pkg-config libbullet-dev | |
make | |
sudo apt-get install -y -qq texlive-binaries texlive-lang-cjk texlive-lang-japanese poppler-utils nkf latex2html | |
(source bashrc.eus; cd doc/; make pdf) | |
(source bashrc.eus; cd doc/; make html) | |
osx: | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Get brew cache directory | |
id: brew-cache | |
run: echo "::set-output name=dir::$(brew --cache)/downloads" | |
- name: Brew cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.brew-cache.outputs.dir }} | |
key: ${{ runner.os }}-${{ hashFiles('.github/workflows/Brewfile') }} | |
- name: Brew config | |
run: | | |
cd .github/workflows/ | |
brew config | |
- name: Run test | |
shell: bash | |
run: | | |
set -x | |
export CI_SOURCE_PATH=$(pwd) | |
export REPOSITORY_NAME=${PWD##*/} | |
export TRAVIS_BRANCH=${GITHUB_REF#refs/heads/} | |
export LC_CTYPE=C | |
echo insecure >> ~/.curlrc | |
export HOMEBREW_CURLRC=1 | |
HOMEBREW_NO_AUTO_UPDATE=1 brew install coreutils | |
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" | |
# since macos-11, we need to install GL/gl.h | |
HOMEBREW_NO_AUTO_UPDATE=1 brew install mesa-glu | |
./.travis-osx.sh | |
- name: Cleanup some brew downloads | |
run: cd ${{ steps.brew-cache.outputs.dir }} && ls -lsS | head -n 10 | awk '{ print $10 }' | xargs rm -rf |