Skip to content

CI of CentroidalControlCollection (catkin) #123

CI of CentroidalControlCollection (catkin)

CI of CentroidalControlCollection (catkin) #123

Workflow file for this run

name: CI of CentroidalControlCollection (catkin)
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
schedule:
- cron: '0 0 * * 0'
jobs:
clang-format:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository code
uses: actions/checkout@v2
- name: Install clang-format-10
run: |
sudo apt-get -qq update
sudo apt-get -qq install clang-format-10
- name: Run clang-format-check
run: |
./.clang-format-check.sh
build-and-test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
build-type: [Debug, RelWithDebInfo]
mc-rtc-version: [head, stable]
exclude:
- build-type: Debug
mc-rtc-version: stable
runs-on: ${{ matrix.os }}
steps:
- name: Set ROS version
run: |
if [ "${{ matrix.os }}" == "ubuntu-20.04" ]
then
echo "ROS_DISTRO=noetic" >> $GITHUB_ENV
echo "PYTHON_PACKAGE_PREFIX=python3" >> $GITHUB_ENV
else # if [ "${{ matrix.os }}" == "ubuntu-18.04" ]
echo "ROS_DISTRO=melodic" >> $GITHUB_ENV
echo "PYTHON_PACKAGE_PREFIX=python" >> $GITHUB_ENV
fi
- name: Install ROS
run: |
set -e
set -x
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update -qq
sudo apt-get install -qq ros-${ROS_DISTRO}-ros-base ${PYTHON_PACKAGE_PREFIX}-catkin-tools ${PYTHON_PACKAGE_PREFIX}-rosdep doxygen graphviz
- name: Install mc_rtc
run: |
set -e
set -x
curl -1sLf 'https://dl.cloudsmith.io/public/mc-rtc/${{ matrix.mc-rtc-version }}/setup.deb.sh' | sudo -E bash
sudo apt-get install -qq libmc-rtc-dev libeigen-qld-dev
- name: Setup catkin workspace
run: |
mkdir -p ${GITHUB_WORKSPACE}/catkin_ws/src/
cd ${GITHUB_WORKSPACE}/catkin_ws
set +x
. /opt/ros/${ROS_DISTRO}/setup.bash
set -x
catkin init
catkin build --limit-status-rate 0.1
- name: Checkout repository code
uses: actions/checkout@v2
with:
submodules: recursive
path: catkin_ws/src/CentroidalControlCollection
- name: Checkout QpSolverCollection
uses: actions/checkout@v2
with:
repository: isri-aist/QpSolverCollection
submodules: recursive
path: catkin_ws/src/QpSolverCollection
- name: Checkout ForceControlCollection
uses: actions/checkout@v2
with:
repository: isri-aist/ForceControlCollection
submodules: recursive
path: catkin_ws/src/ForceControlCollection
- name: Checkout NMPC
uses: actions/checkout@v2
with:
repository: isri-aist/NMPC
submodules: recursive
path: catkin_ws/src/NMPC
- name: Rosdep install
run: |
set -e
set -x
cd ${GITHUB_WORKSPACE}/catkin_ws
set +x
. devel/setup.bash
set -x
sudo rosdep init
rosdep update
rosdep install -y -r --from-paths src --ignore-src
- name: Catkin build
run: |
set -e
set -x
cd ${GITHUB_WORKSPACE}/catkin_ws
set +x
. devel/setup.bash
set -x
catkin build --limit-status-rate 0.1 -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DENABLE_QLD=ON -DINSTALL_DOCUMENTATION=ON
- name: Run tests
run: |
set -e
set -x
cd ${GITHUB_WORKSPACE}/catkin_ws
set +x
. devel/setup.bash
set -x
catkin build --limit-status-rate 0.1 --catkin-make-args run_tests -- centroidal_control_collection --no-deps
catkin_test_results --verbose --all build
- name: Upload documentation
# Only run for one configuration and on origin master branch
if: matrix.os == 'ubuntu-20.04' && matrix.build-type == 'RelWithDebInfo' && matrix.mc-rtc-version == 'head' && github.repository_owner == 'isri-aist' && github.ref == 'refs/heads/master'
run: |
set -e
set -x
cd ${GITHUB_WORKSPACE}/catkin_ws/src/CentroidalControlCollection
git config --global user.name "Masaki Murooka"
git config --global user.email "[email protected]"
git remote set-url origin "https://mmurooka:${{ secrets.CI_TOKEN }}@github.com/isri-aist/CentroidalControlCollection"
git fetch --depth=1 origin gh-pages:gh-pages
git checkout --quiet gh-pages
rm -rf doxygen/ cmake/
cp -r ${GITHUB_WORKSPACE}/catkin_ws/build/centroidal_control_collection/doc/html/ doxygen
git add doxygen
git_status=`git status -s`
if test -n "$git_status"; then
git commit --quiet -m "Update Doxygen HTML files from commit ${{ github.sha }}"
git push origin gh-pages
else
echo "Github pages documentation is already up-to-date."
fi