71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
name: ubuntu-build
|
|
|
|
on: [push, pull_request, workflow_dispatch]
|
|
# paths:
|
|
# - "*"
|
|
# - "!README.md" <-- don't rebuild on doc change
|
|
concurrency:
|
|
group: ci-${{github.workflow}}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-22.04
|
|
name: ubuntu-build
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
|
|
- name: Install Build Dependencies
|
|
shell: bash
|
|
run: |
|
|
sudo apt update && sudo apt install --no-install-recommends -y \
|
|
lsb-release \
|
|
sudo \
|
|
software-properties-common \
|
|
wget \
|
|
make \
|
|
cmake \
|
|
ccache \
|
|
g++ \
|
|
git
|
|
sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
|
|
sudo apt update && sudo apt install --no-install-recommends -y \
|
|
rapidjson-dev \
|
|
libopencv-dev \
|
|
libunwind-dev \
|
|
libgstreamer1.0-dev \
|
|
libgstreamer-plugins-base1.0-dev \
|
|
gstreamer1.0-plugins-bad \
|
|
gstreamer1.0-libav \
|
|
gstreamer1.0-gl \
|
|
gz-harmonic
|
|
|
|
# Put ccache into github cache for faster build
|
|
- name: Prepare ccache timestamp
|
|
id: ccache_cache_timestamp
|
|
run: |
|
|
NOW=$(date -u +"%F-%T")
|
|
echo "::set-output name=timestamp::${NOW}"
|
|
|
|
- name: Cache ccache files
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ~/.ccache
|
|
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
|
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
|
|
|
- name: Setup ccache
|
|
run: |
|
|
. .github/workflows/ccache.env
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
make -j4
|