name: Linux
on:
  push:
    branches: [ gazebo11 ]
  pull_request:
    branches: [ gazebo11 ]

# Every time you make a push to your PR, it cancel immediately the previous checks, 
# and start a new one. The other runner will be available more quickly to your PR. 
concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  build:
    name: linux-build
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 2

      - name: Install Required Dependencies
        run: |
          sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
          wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
          sudo apt-get update
          wget https://raw.githubusercontent.com/ignition-tooling/release-tools/master/jenkins-scripts/lib/dependencies_archive.sh -O /tmp/dependencies.sh
          GAZEBO_MAJOR_VERSION=11 ROS_DISTRO=dummy . /tmp/dependencies.sh
          echo $BASE_DEPENDENCIES $GAZEBO_BASE_DEPENDENCIES | tr -d '\\' | xargs sudo apt-get -y install

      - name: Optional Physics Engines
        run: |
          sudo apt-add-repository ppa:dartsim
          sudo apt-get update
          sudo apt-get install libdart6-dev
          sudo apt-get install libdart6-utils-urdf-dev

      - name: Optional Dependencies
        run: |
          sudo apt-get install xsltproc

      - name: Man Page Support
        run: |
          sudo apt-get install ruby-ronn
          
      - name: Build Gazebo
        run: |
          mkdir build
          cd build
          cmake ../
          make -j $(nproc --all)
          
      - name: Optional tests suite compilation
        run: |
          cd build
          make tests 
