.github/workflows/config.yml: #240
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:focal | ||
- DOCKER_IMAGE: debian:stretch | ||
- DOCKER_IMAGE: ubuntu:trusty | ||
ROS_DISTRO: indigo | ||
- DOCKER_IMAGE: ubuntu:xenial | ||
ROS_DISTRO: kinetic | ||
- DOCKER_IMAGE: ubuntu:bionic | ||
ROS_DISTRO: meodic | ||
- DOCKER_IMAGE: ubuntu:focal | ||
ROS_DISTRO: noetic | ||
- DOCKER_IMAGE: osrf/ubuntu_armhf:trusty | ||
- DOCKER_IMAGE: osrf/ubuntu_armhf:xenial | ||
- DOCKER_IMAGE: osrf/ubuntu_arm64:trusty | ||
- DOCKER_IMAGE: osrf/ubuntu_arm64:xenial | ||
- QEMU: aarch64 | ||
DOCKER_IMAGE: arm64v8/ubuntu:bionic | ||
- QEMU: aarch64 | ||
DOCKER_IMAGE: arm64v8/ubuntu:focal | ||
- DOCKER_IMAGE: osrf/debian_arm64:stretch | ||
- DOCKER_IMAGE: amd64/debian:unstable | ||
# | ||
- QEMU: amd64 | ||
DOCKER_IMAGE: amd64/debian:unstable # amd64 | ||
- QEMU: aarch64 | ||
DOCKER_IMAGE: arm64v8/debian:buster # arm64 | ||
- QEMU: arm | ||
DOCKER_IMAGE: arm32v5/debian:jessie # armel | ||
- QEMU: arm | ||
DOCKER_IMAGE: arm32v7/debian:jessie # armhf | ||
# hppa | ||
# hurd-i386 | ||
- QEMU: i386 | ||
DOCKER_IMAGE: i386/debian:unstable # i386 | ||
- QEMU: i386 | ||
DOCKER_IMAGE: i386/debian:buster # i386 | ||
# ia64 | ||
# m68k | ||
- QEMU: mips64el | ||
DOCKER_IMAGE: loongnix/debian:buster # mips64el | ||
# mipsel | ||
# - QEMU: ppc | ||
# DOCKER_IMAGE: vicamo/debian:unstable-powerpc # powerpc / somehow failing loading eusgl | ||
- QEMU: ppc64le | ||
DOCKER_IMAGE: ppc64le/debian:buster # ppc64 | ||
# riscv64 | ||
# sh4 | ||
# sparc64 | ||
fail-fast: false | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 60 | ||
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}} | ||
export ROS_DISTRO=${{matrix.ROS_DISTRO}} | ||
export QEMU=${{matrix.QEMU}} | ||
export MAKEFLAGS="-j4" | ||
if [[ "$QEMU" != "" || "$DOCKER_IMAGE" == *"arm"* ]]; then sudo apt-get update -y -qq; fi | ||
if [[ "$QEMU" != "" ]]; then sudo apt-get install -y -qq qemu-user-static; ls /usr/bin/qemu-*-static; export QEMU_VOLUME="-v /usr/bin/qemu-$QEMU-static:/usr/bin/qemu-$QEMU-static" ; fi | ||
if [[ "$QEMU" != "" ]]; then docker run --rm --privileged multiarch/qemu-user-static:register --reset; fi | ||
if [[ "$DOCKER_IMAGE" == *"arm"* ]]; then sudo apt-get install -y -qq qemu-user-static; fi | ||
if [[ "$DOCKER_IMAGE" == *"arm"* ]]; then git clone http://github.com/euslisp/jskeus ${HOME}/jskeus; fi | ||
echo "Testing branch $TRAVIS_BRANCH of $REPOSITORY_NAME on $QEMU_VOLUME" | ||
docker run --rm $QEMU_VOLUME -v $HOME:$HOME -e "QEMU=$QEMU" -e "TRAVIS_OS_NAME=$TRAVIS_OS_NAME" -e "CI_SOURCE_PATH=$CI_SOURCE_PATH" -e "HOME=$HOME" -e "MAKEFLAGS=$MAKEFLAGS" -e "DOCKER_IMAGE=$DOCKER_IMAGE" -t $DOCKER_IMAGE sh -c "cd $CI_SOURCE_PATH; ./.travis.sh" | ||
debian-unstable: | ||
strategy: | ||
matrix: | ||
include: | ||
- DOCKER_IMAGE: amd64/debian:unstable-slim | ||
ARCH: Linux64 | ||
- DOCKER_IMAGE: arm32v7/debian:unstable-slim | ||
ARCH: LinuxARM | ||
- DOCKER_IMAGE: arm64v8/debian:unstable-slim | ||
ARCH: LinuxARM | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 60 | ||
name: debian-unstale | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Run test | ||
shell: bash | ||
run: | | ||
set -x | ||
apt update -qq | ||
# Install the qemu packages | ||
# This step will execute the registering scripts | ||
if [[ "$DOCKER_IMAGE" == *"arm"* ]]; then \ | ||
apt install -y -qq qemu binfmt-support qemu-user-static; \ | ||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes; \ | ||
fi | ||
docker run --rm -v $(pwd):/ws/euslisp -e "ARCH=$ARCH" -ti "$DOCKER_IMAGE" bash -c 'set -x; set -e; apt update -qq; ls -al /ws/euslisp /ws/euslisp/lisp; apt install -y -qq make gcc libgl-dev libglu1-mesa-dev libjpeg-dev libpng-dev libpq-dev libx11-dev libxext-dev; ARCH=$ARCH EUSDIR=/ws/euslisp make -C /ws/euslisp/lisp/ -f Makefile.$ARCH eus0; CC="gcc -Werror" ARCHDIR=$ARCH EUSDIR=/ws/euslisp make -C /ws/euslisp/lisp/image/jpeg; exit 0' | ||
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 TRAVIS_OS_NAME=osx | ||
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" | ||
export LC_CTYPE=C | ||
(cd ${HOME}; git clone --depth 1 http://github.com/euslisp/jskeus jskeus) | ||
(cd ${HOME}/jskeus; patch -f -p1 < ${CI_SOURCE_PATH}/.github/workflows/fix-dylib-location.patch || echo "OK") | ||
bash -x ./.travis.sh | ||
- name: Cleanup some brew downloads | ||
run: cd ${{ steps.brew-cache.outputs.dir }} && ls -lsS | head -n 10 | awk '{ print $10 }' | xargs rm -rf |