-
Notifications
You must be signed in to change notification settings - Fork 50
128 lines (121 loc) · 4.77 KB
/
config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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"
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