-
Notifications
You must be signed in to change notification settings - Fork 60
187 lines (171 loc) · 9.56 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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
on:
push:
branches:
- master
pull_request:
env:
DISPLAY: ':0.0'
# workaround required for checkout@v3, https://github.com/actions/checkout/issues/1590
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
ros:
runs-on: ubuntu-latest
# continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
include:
- ROS_DISTRO: indigo
CONTAINER: jskrobotics/ros-ubuntu:14.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
NOT_TEST_INSTALL : true
BEFORE_SCRIPT : "sudo pip install packaging==17.1; for name in ffha libsiftfast nlopt julius julius_ros downward assimp_devel google_chat_ros; do echo \\$name; find $GITHUB_WORKSPACE -iname \\$name -exec touch {}/CATKIN_IGNORE \\; ; ls -al \\$(find -iname \\$name)/; done" # Skip large packagses
USE_DEB: false
- ROS_DISTRO: kinetic
CONTAINER: ubuntu:16.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
EXTRA_DEB : "python-lxml"
BEFORE_SCRIPT : "sudo add-apt-repository -y ppa:jblgf0/python; sudo apt-get update; sudo apt-get install -y python3.6 python3.6-venv libpython3.6-dev; sudo ln -sf python3.6 /usr/bin/python3; ls -al /usr/bin/python3; python3 --version; python3 -v -m venv /tmp/v"
- ROS_DISTRO: melodic
CONTAINER: ubuntu:18.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
- ROS_DISTRO: noetic
CONTAINER: ubuntu:20.04
ROS_PARALLEL_TEST_JOBS: "-j8"
CATKIN_PARALLEL_JOBS: "-i"
container: ${{ matrix.CONTAINER }}
steps:
- name: Install latest git ( use sudo for ros-ubuntu )
run: |
(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 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)
if [ "${{ matrix.CONTAINER }}" = "jskrobotics/ros-ubuntu:14.04" ]; then
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/
else
git config --global --add safe.directory $GITHUB_WORKSPACE
fi
- name: Checkout
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' | 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:
# darty hack, jsk_travis runs catkin build --make-args $ROS_PARALLEL_JOBS --
ROS_PARALLEL_JOBS : ${{ matrix.ROS_PARALLEL_JOBS }} LANG=C.UTF-8 LC_ALL=C.UTF-8
CATKIN_PARALLEL_JOBS : ${{ matrix.CATKIN_PARALLEL_JOBS }}
ROS_PARALLEL_TEST_JOBS : ${{ matrix.ROS_PARALLEL_TEST_JOBS }}
CATKIN_PARALLEL_TEST_JOBS : ${{ matrix.CATKIN_PARALLEL_TEST_JOBS }}
ROS_DISTRO : ${{ matrix.ROS_DISTRO }}
USE_DEB : ${{ matrix.USE_DEB }}
NOT_TEST_INSTALL : ${{ matrix.NOT_TEST_INSTALL }}
TEST_PKGS : ${{ matrix.TEST_PKGS }}
BEFORE_SCRIPT : ${{ matrix.BEFORE_SCRIPT }}
EXTRA_DEB : ${{ matrix.EXTRA_DEB }}
kinetic_i386:
runs-on: ubuntu-latest
name: kinetic_i386
container: i386/ubuntu:16.04
steps:
- name: Install latest git ( use sudo for ros-ubuntu )
run: apt-get update && apt-get install -y software-properties-common && apt-get update && add-apt-repository -y ppa:git-core/ppa && apt-get update && apt-get install -y git
- name: Checkout
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
git clone --depth=1 $GITHUB_SERVER_URL/$GITHUB_REPOSITORY $GITHUB_WORKSPACE
cd $GITHUB_WORKSPACE
git checkout -qf $GITHUB_SHA || (git fetch -q origin +$GITHUB_REF; git checkout -qf FETCH_HEAD)
git submodule update --init .travis
- name: Run jsk_travis
uses: jsk-ros-pkg/jsk_travis@master
with:
EXTRA_DEB : "python-lxml"
ROS_DISTRO : kinetic
ROS_PARALLEL_JOBS : "LANG=C.UTF-8 LC_ALL=C.UTF-8"
ROS_PARALLEL_TEST_JOBS : "-j8"
CATKIN_PARALLEL_JOBS: "-i"
ROSDEP_ADDITIONAL_OPTIONS : "-n -q -r --ignore-src --skip-keys=python-google-cloud-texttospeech-pip --skip-keys=python-dialogflow-pip" # Skip installation of grpcio by pip because it causes error
# https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/237 : (Note that pip==21.0.1 is incompatible with python 2.x)
BEFORE_SCRIPT : "sudo pip install virtualenv==15.1.0; sudo add-apt-repository -y ppa:jblgf0/python; sudo apt-get update; sudo apt-get install -y python3.6 python3.6-venv libpython3.6-dev; sudo ln -sf python3.6 /usr/bin/python3"
## need to setup runners from https://github.com/jsk-ros-pkg/jsk_3rdparty/settings/actions/runners
arm:
runs-on: ['self-hosted', 'Linux', 'ARM64']
strategy:
fail-fast: false
matrix:
include:
- ROS_DISTRO: kinetic
CONTAINER: arm64v8/ros:kinetic-perception-xenial
EXTRA_DEB : "python-lxml"
- ROS_DISTRO: melodic
CONTAINER: arm64v8/ros:melodic-perception-bionic
- ROS_DISTRO: noetic
CONTAINER: arm64v8/ros:noetic-perception-focal
steps:
- uses: actions/[email protected]
with:
submodules: 'true'
path: ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }}
- name: Skip packagse
run: |
cd ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }} && for name in ffha libsiftfast nlopt downward assimp_devel google_chat_ros; do echo $name; find -iname $name -exec touch {}/CATKIN_IGNORE \; ; ls -al $(find -iname $name)/; done
- name: Run commands
run: |
cd ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }}
export EXTRA_DEB=${{ matrix.EXTRA_DEB }}
export ROS_DISTRO=${{ matrix.ROS_DISTRO }}
export ROS_PARALLEL_TEST_JOBS="-j2"
export CATKIN_PARALLEL_JOBS="-i -j2"
export ROSDEP_ADDITIONAL_OPTIONS="-n -q -r --ignore-src --skip-keys=python-google-cloud-texttospeech-pip --skip-keys=python-dialogflow-pip" # Skip installation of grpcio by pip because it causes error
export BEFORE_SCRIPT="sudo pip install virtualenv==15.1.0"
export USE_TRAVIS=true
export USE_DOCKER=false
export DOCKER_IMAGE=${{ matrix.CONTAINER }}
export NOT_TEST_INSTALL=true
export ROS_PARALLEL_JOBS="-j8 --make-args LANG=C.UTF-8 LC_ALL=C.UTF-8"
set +o nounset
export CI_SOURCE_PATH=$(pwd)
export REPOSITORY_NAME=${PWD##*/}
docker pull $DOCKER_IMAGE || true
docker run --rm -v $HOME:$HOME -v $HOME/.ccache:$HOME/.ccache/ -v $HOME/.cache/pip:$HOME/.cache/pip/ \
$DOCKER_XSERVER_OPTIONS \
-e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_JOB_ID -e TRAVIS_OS_NAME -e TRAVIS_PULL_REQUEST -e TRAVIS_REPO_SLUG \
-e GITHUB_RUN_ID \
-e CI_SOURCE_PATH -e HOME -e REPOSITORY_NAME \
-e BUILD_PKGS -e TARGET_PKGS -e TEST_PKGS \
-e BEFORE_SCRIPT -e BUILDER -e EXTRA_DEB -e USE_DEB \
-e ROS_DISTRO -e ROS_LOG_DIR -e ROS_REPOSITORY_PATH -e ROSWS \
-e CATKIN_TOOLS_BUILD_OPTIONS -e CATKIN_TOOLS_CONFIG_OPTIONS \
-e CATKIN_PARALLEL_JOBS -e CATKIN_PARALLEL_TEST_JOBS \
-e ROS_PARALLEL_JOBS -e ROS_PARALLEL_TEST_JOBS -e ROS_PYTHON_VERSION \
-e ROSDEP_ADDITIONAL_OPTIONS -e ROSDEP_UPDATE_QUIET \
-e SUDO_PIP -e USE_PYTHON_VIRTUALENV \
-e NOT_TEST_INSTALL -e DEBUG_TRAVIS_PYTHON \
-t $DOCKER_IMAGE bash -c 'sudo apt-get update -y && sudo apt-get install -q -y git sudo wget curl && cd $CI_SOURCE_PATH/ && .travis/travis.sh'
- name: Cleanup workspace
if: always()
run: |
rm -fr ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }} || echo "OK"