name: C/C++ AppImage

on:
  push:
    branches: [ "main", "release-**"]
  pull_request:
    branches: [ "main" ]

jobs:
  build-appimage:

    strategy:
      matrix:
        include:
          - os: ubuntu-latest

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: 'true'
      - name: install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y build-essential libglfw3-dev libglfw3 libglew-dev libglm-dev libpng-dev libopenal-dev libluajit-5.1-dev libvorbis-dev cmake squashfs-tools
          # fix luajit paths
          sudo ln -s /usr/lib/x86_64-linux-gnu/libluajit-5.1.a /usr/lib/x86_64-linux-gnu/liblua5.1.a
          sudo ln -s /usr/include/luajit-2.1 /usr/include/lua
          # install EnTT
          git clone https://github.com/skypjack/entt.git
          cd entt/build
          cmake -DCMAKE_BUILD_TYPE=Release ..
          sudo make install
          cd ../..
      - name: configure
        run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DVOXELENGINE_BUILD_APPDIR=1
      - name: build
        run: cmake --build build -t install
      - name: Build AppImage
        uses: AppImageCrafters/build-appimage-action@fe2205a4d6056be47051f7b1b3811106e9814910
        env:
          UPDATE_INFO: gh-releases-zsync|MihailRis|VoxelEngine-Cpp|latest|*x86_64.AppImage.zsync
        with:
          recipe: dev/AppImageBuilder.yml
      - uses: actions/upload-artifact@v2
        with:
          name: AppImage
          path: './*.AppImage*'
