-
Notifications
You must be signed in to change notification settings - Fork 50
169 lines (160 loc) · 6.31 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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
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
- DOCKER_IMAGE: s390x/debian:unstable-slim
ARCH: Linux
- DOCKER_IMAGE: riscv64/debian:unstable-slim
ARCH: Linux
runs-on: ubuntu-latest
timeout-minutes: 60
name: debian-unstale
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run test
shell: bash
run: |
export DOCKER_IMAGE=${{matrix.DOCKER_IMAGE}}
export ARCH=${{matrix.ARCH}}
set -x
sudo apt update -qq
# Install the qemu packages
# This step will execute the registering scripts
sudo apt install -y -qq qemu binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --rm -v $(pwd):/ws/euslisp -e "ARCH=$ARCH" -t "$DOCKER_IMAGE" \
bash -c " \
set -x; set -e; \
apt update -qq; \
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